代码之家  ›  专栏  ›  技术社区  ›  Patricia

销毁jQuery对话框会删除任何附加到其中元素的处理程序吗?

  •  6
  • Patricia  · 技术社区  · 15 年前

    我注意到在我正在构建的一个应用程序中有一些内存泄漏,在玩了一段时间之后,FF将开始使用越来越多的内存(高达10000K)。

    $(selector).html(some stuff) 为了替换jQuery处理程序中的某些元素的内容,以前的内容将不会被删除并导致一些问题,我已经修复了所有这些问题。

    我的问题是,如果我破坏了与 $(mydialog).dialog('destroy'); 附加到该对话框中的各种元素的处理程序是否将被删除?

    谢谢!

    2 回复  |  直到 15 年前
        1
  •  5
  •   Nick Craver    15 年前

    不,它们不会被删除,对话框元素本身将返回到它以前的状态,即元素 里面 不会被碰。

    对话框小部件本身、按钮、标题栏、关闭按钮等都会被清理,但是您变成对话框的元素不会受到影响,也不会被清理。你要么 .empty() .remove() 整个元素。

        2
  •  1
  •   karim79    15 年前

    我不确定用提供的方法销毁对话框是否会删除任何包含的事件处理程序,但您始终可以这样做:

    $(selector).empty();
    

    而不是:

    $(selector).html('blahblah'); // or .html('');