2
这里的问题是: 我有一个very complex plugin,做很多不同的初始化和执行时会绑定的。jQuery的:插件间通信
我希望能够在同一个元素上多次运行相同的插件,并给它不同的选项。在元素上运行一次之后,对该元素的后续执行不需要再次执行某些初始化。
目前,插件代码位于闭包内部,并且它不知道其他时间插件相同的插件已在元素上运行。
是否有模式人们在他们想要相互沟通时遵循吗?
我想到的是这样的:
$.plugin = {
globalRefs = [];
}
$.fn.plugin = function() {
var that = {};
$.fn.plugin.id ++; //each execution gets its unique id
var privateFn = function() { ... };
that.privateFn = privateFn; //expose all useful inner functions to that.
$.plugin.globalRefs[$.fn.plugin.id] = that; //make that global
}
$.fn.plugin.id = 0;
更新问题更加清晰。至于.data() - 我不认为这将工作,因为我想传递实际的功能。我可以用数据做到这一点吗?我的印象是它只允许字符串。 – mkoryak 2010-05-07 13:05:12
好吧然后。谢谢 – mkoryak 2010-05-07 13:13:59