我必须重构具有复杂 UI 的大型单页应用程序。
document.ready 函数中有以下代码
$('table.datatable').dataTable({ ... params ... });
$('div.tooltip').tooltip({ ... params ... });
$('ul.dropdownMenu').menu({ ... params ... });
正如您在这段代码中看到的,我们搜索不同的 HTML 控件并调用适当的 jQuery 插件来实现这些控件的行为。
然而,由于页面是非常动态的新数据表、工具提示和菜单,并且由于 JS 函数在应用程序的一开始就被调用 - 这些元素没有必要的功能,除非我为它们手动调用适当的插件。
我想消除每次 DOM 更改后调用 jQuery 插件的需要,但不知道如何做得更好。
一种选择是每次我向 DOM 添加任何内容并在事件的侦听器中重新调用此插件时触发一个事件,但是我不喜欢这种解决方案,因为每次都需要记住触发事件。
我读到了 jQuery 的on
函数,它也为尚不存在的元素附加事件,但我需要什么事件?AFAIK 没有 domchange 事件。
有什么建议吗?