jquery-ui - 带有 jQ​​uery UI slider 的 Knockout .js

标签 jquery-ui knockout.js

假设我有以下链接到文本框的 jQuery UI slider 。

是否可以允许用户在文本框中输入大于 slider 值的值(并将 slider 设置为最大值)?

ko.bindingHandlers.slider = {
init: function (element, valueAccessor, allBindingsAccessor) {
var options = allBindingsAccessor().sliderOptions || {};
$(element).slider(options);
ko.utils.registerEventHandler(element, "slidechange", function (event, ui) {
    var observable = valueAccessor();
    observable(ui.value);
});
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
    $(element).slider("destroy");
});
ko.utils.registerEventHandler(element, "slide", function (event, ui) {
    var observable = valueAccessor();
    observable(ui.value);
});
},
update: function (element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
if (isNaN(value)) value = 0;
$(element).slider("value", value);
}
};

在此示例中:http://jsfiddle.net/jearles/Dt7Ka/12/我希望能够在文本框中保存超过 100 的值,并使 slider 显示为其最大值。

最佳答案

如果 observable 的值小于 options.max,您可以只更新 slidechange 事件中的 observable 值:

ko.utils.registerEventHandler(element, "slidechange", function (event, ui) {
    var observable = valueAccessor();
    var currentMax = $(element).slider("option", "max"); 
    if (observable() <= currentMax)
         observable(ui.value);
});

JSFiddle demo.

关于jquery-ui - 带有 jQ​​uery UI slider 的 Knockout .js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13121296/

相关文章:

jquery - 更改字体大小以自动适应 Div

javascript - knockout 自定义 bindingHandler 无法在附加元素上应用绑定(bind)

javascript - knockoutjs 不能对同一个元素多次应用绑定(bind)

javascript - Knockout js某些部分不渲染

knockout.js - 如何将父函数添加到 KnockOut 双层嵌套映射中?

javascript - jQuery UI 自动完成与 json 文件

javascript - 突出显示选定的表格行

jquery - 简单的 ASP.NET MVC CRUD View 在 JavaScript UI 对话框中打开/关闭

jquery - 为什么 JQuery UI slider 中的句柄是 <a> 标签?

javascript - 不使用ajax下载文件