javascript - 如何使用 Knockout 禁用点击事件?

标签 javascript jquery knockout.js

我有两个按钮,叫做

<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/

相关文章:

javascript - 具有嵌套形式的 jQuery 对话框

javascript - 如果总计无效,则将字段文本和边框设置为红色

javascript - 如何使用knockoutjs绑定(bind)嵌套输入

jquery - 如何修复 Bootstrap 搜索/过滤栏中的动态滚动?

javascript - jQuery - ReplaceWith 更新 HTML 不会生成图像或链接

javascript - 如何使用 Bootstrap 禁用幻灯片中的左右箭头

Javascript 在嵌套 Functions() 之间传递数组

javascript - push() 一个二维数组

javascript - 如何确定 li 元素中的哪个 anchor 处于事件状态

javascript - jquery 的 CORS 错误