0

我有一大堆带有事件处理程序的复选框selectVid

$std_cbs.on('change', selectVid);

“toggle all”复选框切换所有其他复选框,并触发这些复选框的“change”事件。

$checkboxes.prop('checked', is_checked).trigger('change');

这很好用,直到我打开和关闭一个Facebook弹出窗口。在此之后,当我切换“全部切换”复选框时,其他复选框也会切换,但selectVid不会调用它们的事件处理程序。

如果我切换单个复选框,selectVid则会按预期调用。

如果我刷新页面,一切都会再次运行。我已经使用了 Chrome 的调试器,并且$checkboxes.prop('checked', is_checked).trigger('change');总是可以到达。

那么为什么在打开和关闭 facebox 弹出窗口后trigger('change')不再调用呢?selectVid

4

1 回答 1

0

最终通过使用自执行匿名函数模式意外地解决了这个问题,如本文所述

我假设当我打开 facebox 时一定存在命名冲突,一旦我将所有函数和成员放在他们自己的命名空间中(使用上述模式),这个冲突就解决了。

于 2013-10-23T02:40:58.503 回答