我有一种情况,我在页面上的插件将被引用多次。问题是将调用插件的元素将在运行中创建。然后删除等...例如。
我。我在这些孩子上添加了插件实例。他们做了一些魔术......
II。用户单击一个按钮,创建一组新的子元素 - 我创建了插件实例。
现在 - 在上面的“i”点创建的内容会发生什么?我没有使用“小部件”所以我没有破坏方法。
所以,我可以只调用子元素,然后循环遍历它们并销毁数据元素等.ala。
$.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中删除元素,是否也会删除/清除插件实例?
答案 0 :(得分:1)
默认情况下,当您调用$(el).remove()方法时,jQuery将使用$(el).data()清理您存储的所有数据。
如果您使用$(el).detach(),则会保留数据。
http://api.jquery.com/jQuery.data/
jQuery确保在删除DOM元素时删除数据 通过jQuery方法,以及当用户离开页面时。