1

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

4

1 回答 1

2

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

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

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

  // do stuff

  $(this).data("handling-now", null);
}
于 2012-12-14T23:08:47.790 回答