使用 ajax 加载的页面绑定和取消绑定事件处理程序

Event handler binding and unbinding with ajax loaded pages

本文关键字:绑定 取消 事件处理 程序 ajax 加载 使用      更新时间:2023-09-26

动态加载(ajax(页面中处理JavaScript事件的"良好线程路径"是什么?

我有一个应用程序,它有一个标签栏控制器,可以通过 ajax 拉入子视图,这些视图有自己的 js,这在第一次很好,但如果有人长时间使用该应用程序并反复循环浏览所有选项卡视图,事件会一遍又一遍地绑定,这似乎效率非常低下, 特别是考虑到这些子视图可能有自己的子视图,其中一些子视图可能有很多事件处理程序。

有哪些

更优雅的方法来解决这个问题?(顺便说一句,我正在使用jQuery(

这取决于场景,你甚至没有显示一行代码,但你可以在绑定新回调之前使用 unbind

$('#foo').unbind('click').click(handler);
...
$('#foo').unbind('click').click(handler)
...
$('#foo').unbind('click').click(handler)
...
$('#foo').click(); // handler fire one time only.