我的插件创建链接,然后调用插件本身的功能。我可以直接操作 DOM 并使用类似的东西$link.click(function() {...})
,但我不想使用这种方法,因为 -
- 我的代码变得更加复杂并且
- 字符串操作更快
如何通过字符串链接调用插件的功能?
问题是找到创建插件的实际 DOM 元素。我不能只使用/设置 HTML id,因为它可能被页面用于其他目的,或者可能不是唯一的。我想出了添加一个独特的类以便稍后找到插件的想法:
// 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
});
}
但是有没有更好的方法来做到这一点?