我有一個應用於少數元素的插件。有什麼方法可以存儲和檢索JQuery插件對象,以便我們可以運行該對象的方法。樣品的例子是:從html元素中識別插件
$('#li1').myPlugin(); // apply plugin object to different li
$('#li2').myPlugin(); // apply plugin object to different li
$('#li3').myPlugin(); // apply plugin object to different li
現在我想檢索用戶活動對象其他外部元件上,以運行該插件的一些方法。像
var idx = 2
$('body').click(function(){ $('li').eq(2).highLight(); })
由於highLight
是myPlugin
但不是李公共方法,所以它不會執行。 我可以設置爲myplugin對象屬性的元素(但它不是字符串)或我可以做插件初始化內這種方式,
$(this)[0].obj = this; // sounds weird.
什麼是比創建全球關聯數組存儲的對象與元素之外的另一種選擇Id爲關鍵。這在我的情況下是不可能的,因爲我的插件元素可能有也可能沒有ID。
編輯
這是樣品插件,實際是太大了,在這裏發表。目標是通過外部活動來識別與元素相關聯的插件。示例示例使用body.click
,但假設我們無法在我的插件中實現點擊。實際上,事件可能是插件未知的任何外部自定義事件。我希望我很清楚。
(function ($) {
$.fn.myPlugin = function(){
var ele = this;
// elr.get(0).extension = this; // can I do this, cross browser?
// so that later i can call it as
// $('li').eq(1).get(0).extension.highLight()
this.highLight = function(){
ele.css('color','red');
}
this.blueIt = function(){
ele.css('color','blue');
}
this.blueIt();
}
})(jQuery);
也許你可以顯示一些你的插件 - 也許方法定義 – ManseUK
@ManseUK更新後,澄清問題 – hungryMind