我有两个按钮,叫做
<a href='#' data-bind='click: clickActivateSpatialSearch' id='draw_polygon'>
<a href='#' data-bind='click: clickActivateSpatialSearchBox' id='draw_box'>
这里最好的是什么?我可以在 $(document).ready
上使用 jQuery 吗?问题是数据绑定(bind)单击会在按下时禁用其他单击事件,同样。但是当我按下同一个按钮时,它会再次启用第二个按钮。
所以我想用所有胡言乱语说的是,我只想一次启用一个按钮。这有可能和 knockout 一起合作吗?如果是这样,请告诉我如何。 PS:我在knockout网站上看过enable,没看懂。我应该如何让它充分发挥作用?
最佳答案
当我们有这样的代码时,knockoutjs 启用功能将起作用
最初两个链接都处于事件状态。如果您单击任何一个链接,它会禁用另一个。如果您再次单击该链接,它会启用另一个链接。
这不是您要的答案..这是如何启用 knockout 的答案
你只想启用一个按钮,那么必须有一些条件,用这个启用绑定(bind)应用这些条件,这一切都解决了。
HTML:-
<input type="text" data-bind="enable: linkTwo() != 'clicked',click: clickActivateSpatialSearch" id='draw_polygon'/>
<input type="text" data-bind="enable: linkOne() != 'clicked',click: clickActivateSpatialSearchBox" id='draw_box'/>
脚本:-
var self = this;
self.linkOne = ko.observable();
self.linkTwo = ko.observable();
self.clickActivateSpatialSearch = function(){
if(self.linkOne() != 'clicked'){
self.linkOne('clicked');
}
else{
self.linkOne('notClicked');
}
// some code here
};
self.clickActivateSpatialSearchBox= function(){
if(self.linkTwo() != 'clicked'){
self.linkTwo('clicked');
}
else{
self.linkTwo('notClicked');
}
// some code here
};
注意:启用和禁用绑定(bind)不适用于 anchor 标记。它适用于输入、文本区域、选择..
关于javascript - 如何使用 Knockout 禁用点击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15244254/