我有一大堆带有事件处理程序selectVid
的复选框。
$std_cbs.on('change', selectVid);
“全部切换”复选框切换所有其他复选框,并触发这些复选框的“更改”事件。
$checkboxes.prop('checked', is_checked).trigger('change');
这非常有用,直到我打开并关闭facebox弹出窗口。在此之后,当我切换“toggle all”复选框时,其他复选框也会切换,但不会调用它们的事件处理程序selectVid
。
如果我切换单个复选框,则会按预期调用selectVid
。
如果我刷新页面,一切都会再次运作。我已经使用Chrome的调试器,并始终到达$checkboxes.prop('checked', is_checked).trigger('change');
行。
那么为什么在打开和关闭facebox弹出框后,trigger('change')
不再导致selectVid
被调用?
提前致谢!
答案 0 :(得分:0)
使用自执行匿名函数模式偶然解决这个问题,如this article中所述。
我认为在打开facebox时肯定会出现命名冲突,一旦我将所有函数和成员放在他们自己的命名空间中(使用上述模式),就会解决这个问题。