im加载Ajax,并加载页面JavaScript代码。
我想知道,如果我删除了带有jQuery live bind事件的页面JavaScript代码,它将杀死绑定,还是我仍然必须调用$(this).die();功能?
jQuery live bind事件
jQuery(function($) {
$('.showNavLink').live('click', function() {
});
});
AJAX页面流
- 主页已加载
- 主页JavaScript已加载
- 用户要求加载新页面(单击)
- 使用JavaScript删除主页代码
- 删除JavaScript代码
- 加载新页面...(第一步开始周期)。
$.live
被弃用http://api.jquery.com/live/。但是,如果使用它,则应将其删除。我假设您永远不会刷新页面。只是删除脚本标签并不能撤消脚本运行时所做的所有操作。
新方法是
$(document).on('click', '.showNavLink', function() {});
当它不再需要
时$(document).off('click', '.showNavLink');
删除JavaScript源代码不会删除从该代码创建的JavaScript函数对象。
您必须解开活动处理程序以防止其处理事件。
删除元素 disssociates 相应元素的所有事件。
即使删除元素,如果您不删除事件,可能会有内存泄漏..因此,最好明确致电.die()
也
As of jQuery 1.7, use of .die() (and its complementary method, .live())
is not recommended. Instead, use .off() to remove event handlers bound with .on()