私のプラグインは、プラグイン自体の機能を呼び出すリンクを作成します。DOM を直接操作して のようなものを使用することもできます$link.click(function() {...})
が、このアプローチは使用したくありません。
- 私のコードはより複雑になり、
- 文字列操作が高速
文字列リンクを介してプラグインの機能を呼び出すにはどうすればよいですか?
問題は、プラグインが作成された実際の DOM 要素を見つけることです。HTML ID は他の目的でページで使用されているか、一意ではない可能性があるため、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
});
}
しかし、これを行うためのより良い方法はありますか?