淘汰禁用绑定不工作与jquery ui按钮
Knockout disable binding is not working with jquery ui button
我在jquery ui按钮上使用knockout disable
绑定。当我使用data-bind='disable: ture'
上的任何按钮上的jquery ui按钮插件应用,它禁用该按钮,但其外观没有设置为禁用。这里我创建了一个示例小提琴:
我错过了什么
正如spullen所提到的,我将如何使用自定义绑定:
ko.bindingHandlers.jqButton = {
init: function (element, valueAccessor, allBindingsAccessor) {
var options = valueAccessor();
for (var p in options) {
options[p] = ko.utils.unwrapObservable(options[p]);
}
$(element).button(options);
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
$(element).button("destroy");
});
},
update: function (element, valueAccessor) {
var options = valueAccessor();
for (var p in options) {
options[p] = ko.utils.unwrapObservable(options[p]);
}
$(element).button("option", options);
$(element).button("refresh");
}
};
ko.applyBindings({
flag: ko.observable(true)
});
在HTML中:
<button data-bind="jqButton: {disabled: flag} ">Disable state using knockout disable binding</button>
看起来,当您使用jqueryui按钮时,它覆盖了属性的默认行为(因为它控制了它们,但不确定如何,可能需要进一步研究)。
然而,我能够让它工作改变顺序:
ko.applyBindings();
$("button").eq(0).button();
$("button").eq(1).button({ disabled: true });
为了让这两个库很好地发挥作用,您还可以编写自定义绑定。
我想通过为jquery ui按钮的选项添加对使用可观察对象的支持来详细说明gbs的示例(它工作得很好)(例如禁用映射到可观察对象,而不仅仅是true或false)。
ko.bindingHandlers.jqButton = {
init: function (element, valueAccessor, allBindingsAccessor) {
var options = valueAccessor();
for (var p in options) {
// CHANGE STARTS HERE
if (ko.isObservable(options[p]))
options[p].subscribe(function (newValue) {
$(element).button("option", p, newValue);
$(element).button("refresh");
});
// CHANGE ENDS HERE
options[p] = ko.utils.unwrapObservable(options[p]);
}
$(element).button(options);
ko.utils.domNodeDisposal.addDisposeCallback(element, function () {
$(element).button("destroy");
});
},
update: function (element, valueAccessor) {
var options = valueAccessor();
for (var p in options) {
options[p] = ko.utils.unwrapObservable(options[p]);
}
$(element).button("option", options);
$(element).button("refresh");
}
};
相关文章:
- jQuery UI自动完成突然停止工作
- Rails/JSON:如何将JSON用于jquery UI自动完成表单
- 停止jQuery UI滑块移动超过给定值
- Jquery UI自动完成无法工作
- jquery ui滑块上的滑块值
- jQuery UI可排序-多连接列表拖动
- 使用Jquery ui时滑块无法工作
- JQuery UI可拖动潜水与滚动棒到鼠标
- jQuery UI自动完成-修改问题
- JQuery UI日期选择器:在选择出发日期时自动弹出返回日期
- 阻止选项卡缓存jquery ui
- 将jQuery UI Timepicker Addon与React一起使用
- 如何在页面重新加载时显示jquery ui对话框
- jquery ui自动完成导致标头错误
- jquery UI draggable:UI.children不是一个函数
- 在JQuery UI Accordion Sortable中使用touchpunch无法正确使用touch
- Jquery UI对话框不会消失
- jQuery UI对话框错误,按钮导致HierarchyRequestError
- jQuery UI使用json文件自动完成
- 如何从内部销毁jQuery UI小部件's原型