Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.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,我有anchor标签 <a class="list-group-item" data-bind="click: $parent.onResourceTimeSelect, css: { disabled: isActive == 1 }, style: { background: isSelected == 1 ? '#ddd' : '' }"></a> 数据是对象。有一个属性isSelected,如果它的1,它应该解除单击事件的绑定 if (data['isSelec

我有
anchor
标签

<a class="list-group-item" data-bind="click: $parent.onResourceTimeSelect, css: { disabled: isActive == 1 }, style: { background: isSelected == 1 ? '#ddd' : '' }"></a>
数据是对象。有一个属性
isSelected
,如果它的
1
,它应该解除单击事件的绑定

if (data['isSelected'] == 1) {

}
如何停止单击事件?尝试使用
$(数据)。取消绑定('click')
$(数据)。单击(函数(){return false})并且它们都不工作

如果我在
If
中写入
console.log(数据)
,它确实会将消息返回给我,因此我100%进入
If

我怎样才能做到这一点

data-bind="click: isSelected == 1 ? function() {return false;} : $parent.onResourceTimeSelect, css: { disabled: isActive == 1 }, style: { background: isSelected == 1 ? '#ddd' : '' }"
应该做到这一点,它基本上是在(击倒)单击处理程序中放置一个if。如果值为1,则返回false,否则将执行函数

注意:isSelected必须是可观察的

应该做到这一点,它基本上是在(击倒)单击处理程序中放置一个if。如果值为1,则返回false,否则将执行函数


注意:isSelected必须是可观察的

我将您的
单击
处理程序重命名为
onClick
,并处理方法中的不同情况:

self.onClick = function(resourceTime, event) {
  if (resourceTime.isSelected() === 1) {
    return false;
  }

  self.onResourceTimeSelected(resourceTime);
};
好处:

  • 您的
    单击
    绑定值易于阅读,并且不太容易出现(语法)错误
  • onClick
    命名表示有几种方法可以处理单击
  • 如果以后要添加其他案例,可以轻松地将它们添加到此处理程序中

我将您的
单击
处理程序重命名为
onClick
,并处理方法中的不同情况:

self.onClick = function(resourceTime, event) {
  if (resourceTime.isSelected() === 1) {
    return false;
  }

  self.onResourceTimeSelected(resourceTime);
};
好处:

  • 您的
    单击
    绑定值易于阅读,并且不太容易出现(语法)错误
  • onClick
    命名表示有几种方法可以处理单击
  • 如果以后要添加其他案例,可以轻松地将它们添加到此处理程序中

因此,基本上,如果isSelected的值为1,您希望只能单击按钮一次吗?如果它满足一些条件,我将isSelected属性设置为1,并更改锚定标记的颜色。我想要的是停止“第二次单击”,因此基本上,如果isSelected的值为1,您希望只能单击按钮一次?如果它满足某些条件,我将
isSelected
属性设置为1,并更改锚定标记的颜色。我想要的是停止“第二次点击”啊,我没想到会这样做。成功了,谢谢。10分钟后我会接受答案的,不客气。有时我们忽略了简单的解决办法:)啊,我不想那样做。成功了,谢谢。10分钟后我会接受答案的,不客气。有时我们忽略了简单的解决方案:)