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