0

我有一种情况,我在页面上的插件会被多次引用。问题是调用插件的元素将被即时创建。然后删除等...例如。

  1. 我有一个 div 结构,它创建了一些子元素。

一世。我在这些孩子上添加插件实例。他们会做一些魔术等。

ii. 用户单击一个按钮,创建了一组新的子元素——我创建了插件实例。

现在——在上面“i”点创建的那些会发生什么?我没有使用“小部件”,所以我没有销毁方法。

那么,我可以只调用子元素,然后循环遍历它们并销毁数据元素等......唉。

$.each('[some_class_that_represents_all_elements]', function(a,b){
     $(b).data('PLUGIN_NAME') = null; // or
     delete $(b).data('PLUGIN_NAME'); // or
     $(b).data('PLUGIN_NAME', null);
})

如果元素从 DOM 中删除,插件实例是否也会被删除/清理?

4

1 回答 1

2

默认情况下,当您调用 $(el).remove() 方法时,jQuery 将清除您使用 $(el).data() 存储的所有数据。

如果您使用 $(el).detach() 数据将被保留。

http://api.jquery.com/jQuery.data/

jQuery 确保在通过 jQuery 方法删除 DOM 元素以及用户离开页面时删除数据。

于 2013-10-17T01:03:05.840 回答