javascript - jQuery 事件中的递归

标签 javascript jquery recursion jquery-events

此事件附加到一组元素:

var elems = $(this).filter(function(){
  ...
});

如何在更改事件处理程序中触发这些元素的更改事件,但忽略当前元素?

elems.bind('change input', function(){

  // do some stuff...

  // then trigger change, but not on "this", to avoid the recursion issue
  elems.change(); 

});

基本上我不想忽略 elems 中的 this,但只在上面的“手动”更改 () 调用中...

最佳答案

var elems = $(this).filter(function(){
  ...
});

elems.bind('change input', function(){


  // then trigger change, but not on "this", to avoid the recursion issue
  elems.not(this).change(); 

});

虽然我必须说,这个场景看起来像是一个糟糕的设计问题。
当元素被更改时,它会为包括他自己在内的某些元素设置一个更改事件回调...听起来很尴尬并且递归只是其他更大问题的症状...

它可能可以用比这更简洁的方式完成。

关于javascript - jQuery 事件中的递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9263710/

相关文章:

php - 通过 Web 界面对 css 文件进行永久更改?

javascript - 使用数据属性覆盖弹出选项参数

jquery 将 div 克隆到变量中并删除样式属性

java - 为什么这种递归方法有效?

objective-c - 递归不崩溃

javascript - 使用 ngshow "ng-show="传递数组值 likeClicked[{{comment.id}}]"有效或无效

javascript - 我如何解析 Google 的 suggestqueries JSON 响应?

javascript - 删除一个时如何在 Vue 中为列表项设置动画

javascript - 尝试在页面刷新时更改背景图像,遇到问题

javascript - 在没有 setTimeout 的情况下在 JavaScript 中模拟文本键入效果