gpt4 book ai didi

knockout.js - 点击绑定(bind)的启用条件

转载 作者:行者123 更新时间:2023-12-04 10:08:14 24 4
gpt4 key购买 nike

有没有办法为点击绑定(bind)指定启用条件?例如,如果我有以下内容:

<div data-bind="click: toggleDialog">Click Me</div>

如果发生指定的条件,我希望能够禁用单击,因此效果如下:
<div data-bind="click: toggleDialog, enableClick: myName() === 'John'">Click Me</div>

我在想也许自定义绑定(bind)可以解决这个问题,但不太确定如何去做。

最佳答案

您可以使用我为 anchor 所做的这种方法

http://jsfiddle.net/xCfQC/11/

(function() {
//First make KO able to disable clicks on Anchors
var orgClickInit = ko.bindingHandlers.click.init;
ko.bindingHandlers.click.init = function(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
if(element.tagName === "DIV" && allBindingsAccessor().enable != null) {
var disabled = ko.computed({
read: function() {
return ko.utils.unwrapObservable(allBindingsAccessor().enable) === false;
},
disposeWhenNodeIsRemoved: element
});
ko.applyBindingsToNode(element, { css: { disabled: disabled} });
var handler = valueAccessor();
valueAccessor = function() {
return function() {
if(ko.utils.unwrapObservable(allBindingsAccessor().enable)) {
handler.apply(this, arguments);
}
}
};
}
orgClickInit.apply(this, arguments);
};
})();

更多细节:
https://github.com/AndersMalmgren/Knockout.BindingConventions/wiki/Button-convention

关于knockout.js - 点击绑定(bind)的启用条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17321700/

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