清空标签时,内部的事件附加按钮是否收集了垃圾?

Hou*_*man 5 javascript jquery

有了这样的代码,我想知道我是否第二次运行这个函数,这种情况会发生:

  1. 当清空#deals标签时,btn尽管它们上面有事件并且生活很好,但所有内部都会被擦除.
  2. 我必须先取消订阅btn,否则清空#deals标签会导致内存泄漏?
  3. 项目清单

码:

function test(){
    var row = $(this).closest('tr');  
    $(row).find('#deals').empty();

    $(result).find('#tab li a').each(function() {               
      var btn = $('<a/>', {class: 'btn', href: '#'});

      $(row).find('#deals').append(btn);

      btn.click(function(event){
          event.preventDefault();
          ...
         });
    });
}
Run Code Online (Sandbox Code Playgroud)

Den*_*ret 3

您不必取消订阅:

为了避免内存泄漏,jQuery 在删除元素本身之前从子元素中删除其他构造,例如数据和事件处理程序。

(来自文档