gpt4 book ai didi

javascript - 如何使用微调器输入强制 valueUpdate (knockoutJS)

转载 作者:行者123 更新时间:2023-11-29 21:52:09 25 4
gpt4 key购买 nike

我有一个带有以下 HTML 的微调器:

<input id="infoX"  data-bind="spinner: infoXpos, spinnerOptions: { min: -50, max: 50 }, valueUpdate: ['propertychange','input']"  />

然而,在我改变焦点之前,valueUpdate 似乎不起作用。有没有其他方法可以强制更新,以便每次点击微调按钮时,“infoXpos”都会更新?

下面是我的绑定(bind)处理程序:

    ko.bindingHandlers.spinner = {
init: function (element, valueAccessor, allBindingsAccessor) {
//initialize datepicker with some optional options
var options = allBindingsAccessor().spinnerOptions || {};

//handle the field changing
ko.utils.registerEventHandler(element, "spinchange", function () {
var observable = valueAccessor();
observable($(element).spinner("value"));
});

//handle disposal (if KO removes by the template binding)
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
$(element).spinner("destroy");
});

$(element).spinner(options);
},
update: function (element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor()),
current = $(element).spinner("value");

if (value !== current) {
$(element).spinner("value", value);
}
}
};

最佳答案

似乎只是发布到 SO 对我解决问题有很大的影响。 ;)

解决方法很简单。我更改了事件处理程序以响应“spinstop”而不是“spin change”。

ko.utils.registerEventHandler(element, "spinstop", function () {
var observable = valueAccessor();
observable($(element).spinner("value"));
});

成功了。

在这里 fiddle :http://jsfiddle.net/AsleG/m6ztnqxc/

关于javascript - 如何使用微调器输入强制 valueUpdate (knockoutJS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28581931/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com