Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用敲除禁用单击事件?_Javascript_Jquery_Knockout.js - Fatal编程技术网

Javascript 如何使用敲除禁用单击事件?

Javascript 如何使用敲除禁用单击事件?,javascript,jquery,knockout.js,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吗?问题是数据绑定单击在按下时禁用另一个单击事件,同样地。但当我按下

我有两个按钮,叫做

<a href='#' data-bind='click: clickActivateSpatialSearch' id='draw_polygon'>
<a href='#' data-bind='click: clickActivateSpatialSearchBox' id='draw_box'>

这里最好的是什么?我可以在
$(document.ready
上使用jQuery吗?问题是数据绑定单击在按下时禁用另一个单击事件,同样地。但当我按下同一个按钮时,它会再次启用第二个按钮


所以我想说的是,我一次只想启用一个按钮。这有可能和淘汰赛合作吗?如果是,请告诉我怎么做。PS:我已经在淘汰赛网站上看过了关于enable的内容,但我不明白。如何使其充分工作?

您可以添加一个可观察对象,用于保存按下的按钮,然后将单击更改为检查可观察对象的功能:

<a href='#' data-bind='click: function() { 
    if(buttonClickedObservable() == 'polygon')
    {
        clickActivateSpatialSearch();
    }' id='draw_polygon'>
<a href='#' data-bind='click: function() { 
    if(buttonClickedObservable() == 'box')
    {
        clickActivateSpatialSearchBox'();
    }' id='draw_box'>


当我们有这样的代码时,knockoutjsenable功能就可以工作了

最初,两个链接都处于活动状态。如果单击任何一个链接,它将禁用另一个链接。如果再次单击该链接,它将启用另一个链接

这不是你想要的答案。。这就是enable如何与knockout一起工作的答案

您只需要启用一个按钮,那么必须有一些条件,通过这个启用绑定应用这些条件,这就是所有问题的解决方法

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

注意:启用和禁用绑定对锚定标记不起作用。它适用于输入、文本区域、选择..

请发布视图模型的(相关部分)。如果没有启用功能,Paul Manzotti先生的回答肯定也会起作用。它不像
数据绑定='enable:linkTwo()!='点击“
”,表示无法解析这些绑定。我确实在viewModel中正确添加了它,但当我启动网站时,它立即尝试解析绑定错误是因为单引号。。。禁用和启用绑定不适用于锚标记。。它将用于输入、文本区域、选择。。。对于href,您必须遵循Paul Manzotti先生的回答。。这是我的错误,现在我改变了我的答案。
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
};