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