我的插件会创建链接,然后调用插件本身的功能。我可以直接操作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
});
}
但有更好的方法吗?
答案 0 :(得分:0)
不要这样做。你获得的附加性能可以忽略不计。
我不会将此作为评论发布,因为这应该是答案。 不要这样做!! 。