所以我有一组 jQuery 插件,非常基本的东西,但我将代码拆分成插件,因为我不喜欢在存储整个应用程序逻辑的地方使用巨大的 jQuery(document).ready() 函数。
每个插件都有一个“析构函数”,它基本上是我在插件原型(prototype)对象中定义的一个函数。此函数取消绑定(bind)插件使用的事件,删除插件添加的 DOM 元素等。
插件是这样初始化的:
$('.element').plugin();
有什么方法可以从另一个应该替换正文 HTML 的插件中获取所有附加了我的插件的元素,这样我就可以调用析构函数了吗?
我想将每个插件实例存储在一个全局数组中,然后我可以从任何插件访问该数组。但也许有不使用全局状态的更好方法?
最佳答案
我不认为有现成的方法...但是作为 hack,您可以向插件中的目标元素添加一个类,然后使用该类获取所有元素,并初始化小部件 lke
$.fn.plugin = function(){
this.addClass('my-plugin-class');
}
然后初始化
$(element).plugin()
通过插件获取所有元素
$('.my-plugin-class')....
但如果它是一个 jQuery UI 小部件,那么您可以使用选择器 $(':ui-widgetname')
,参见 this answer
关于javascript - 检测 "hooked"DOM 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20276660/