Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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 - Fatal编程技术网

Javascript 在不触发更改的情况下解除绑定

Javascript 在不触发更改的情况下解除绑定,javascript,jquery,Javascript,Jquery,我有一些控件,每个控件都会在更改时更新其他控件。为了防止递归,我曾想过在事件处理程序的开始处解除onchange事件的绑定(一个处理程序由相关控件共享),然后在更新依赖项后重新绑定它。所有涉及的控件都用DateBoundControl类标记,以便于参考,我已经验证了预期的控件是由jquery表达式返回的 问题代码如下所示: function onDateBoundChange(evt) { $(".DateBoundControl").change(); //do stuff to ot

我有一些控件,每个控件都会在更改时更新其他控件。为了防止递归,我曾想过在事件处理程序的开始处解除onchange事件的绑定(一个处理程序由相关控件共享),然后在更新依赖项后重新绑定它。所有涉及的控件都用DateBoundControl类标记,以便于参考,我已经验证了预期的控件是由jquery表达式返回的

问题代码如下所示:

function onDateBoundChange(evt) {
  $(".DateBoundControl").change();
  //do stuff to other controls that use this change handler
  $(".DateBoundControl").change(onDateBoundChange);
}
但是,
$(.DateBoundControl”).change()似乎触发了更改事件

我错过了什么吗?在我尝试解开处理程序的过程中是否存在一些缺陷

但是,$(“.DateBoundControl”).change();似乎触发了变化事件

作为文档,这正是它应该做的

您正在查找取消绑定事件的

但是,$(“.DateBoundControl”).change();似乎触发了变化事件

作为文档,这正是它应该做的

您正在查找取消绑定事件的。请尝试以下操作:

function onDateBoundChange(evt) {
  $(".DateBoundControl").unbind('change', onDateBoundChange);
  //do stuff to other controls that use this change handler
  $(".DateBoundControl").bind('change', onDateBoundChange);
}
试试这个:

function onDateBoundChange(evt) {
  $(".DateBoundControl").unbind('change', onDateBoundChange);
  //do stuff to other controls that use this change handler
  $(".DateBoundControl").bind('change', onDateBoundChange);
}

当你写这篇文章的时候,我正忙着发现文档清楚地说明了等等。但是,谢谢你“关闭”这就是我要找的。当你写这篇文章的时候,我正忙着发现文档清楚地说明了等等。然而,谢谢你的“关”,这是我一直在寻找的。谢谢,我认为这也是一个很好的答案,然而SLaks的答案正是我一直在寻找的。不能同时接受so+1。谢谢,我认为这也是一个很好的答案,但是SLaks的答案正是我想要的。不能同时接受这两种情况,因此为您选择+1。