0
我的插件創建鏈接,然後調用插件本身的功能。我可以直接操作DOM並使用類似$link.click(function() {...})
,但我不希望使用此方法,因爲 -如何創建一個鏈接來調用jquery插件本身的功能
- 我的代碼得到了很多更加複雜和
- string manipulation is faster
我怎樣才能通過字符串鏈接調用插件的功能?
問題是找到創建插件的實際DOM元素。我不能僅僅使用/設置HTML標識,因爲它可能被頁面用於其他目的,或者可能不是唯一的。我想出了添加一個獨特的類來尋找插件的想法:
// init function of plugin
init : function(options) {
return this.each(function() {
var data = $this.data("myPlugin");
if (!data) {
data.uniqueClass = 'p' + new Date().getTime() + '_' + Math.random().toString().substring(2);
$this.addClass(data.uniqueClass);
this.data('myPlugin', data);
// generate link
$this.html('<a onclick="jQuery(\'.' + data.uniqueClass + '\').myPlugin(\'func\');">Do func</a>');
}
});
}
// function that i want to call of my plugin
func : function() {
return this.each(function() {
// do stuff
});
}
但是有沒有更好的方法來做到這一點?
whay你在jQuery插件中使用內聯突兀腳本嗎?沒有意義 – charlietfl
可以使用'parent()'訪問''的父元素,您正在使用'parent()'添加類,不需要唯一類來創建點擊處理程序的目標 – charlietfl
@charlietfl我用$ this.html(...)寫了一個簡化的表達式,實際上它是一個大表,我通過串聯包含行和單元格的一些循環的字符串來創建它。單元格中的鏈接應該調用具有不同參數的函數。所以,如果我添加一個類的鏈接本身,那麼我將不得不將函數參數保存在HTML中的其他地方,並用例如。元數據插件,我不認爲很漂亮。 – Flo