为了防止事件处理回路接受的设计模式

时间:2012-12-14 23:05:07

标签: javascript javascript-events jquery

在使用jQuery时,我似乎一直遇到这个问题。当两个表单字段A和B具有修改另一个的更改事件处理程序(A修改B和B修改A)时,用于阻止它们创建循环循环的可接受设计模式是什么?

1 个答案:

答案 0 :(得分:2)

如果你是从每个处理程序显式触发伙伴元素的“更改”处理程序,只需在源元素上设置一个标志,如果看到该标志就中止处理程序。

function handler(ev) {
  if ($(this).data("handling-now")) return;

  $(this).data("handling-now", true);

  // do stuff

  $(this).data("handling-now", null);
}