如果删除了jQuery实时事件代码,我是否仍然必须解开它



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()

相关内容

  • 没有找到相关文章

最新更新