私は jQuery の初心者で、カラーピッカー プラグインを作成したいと考えています。
私がやったことはまだうまくいっていますが、問題があります。
私のウェブページのすべての静的コンテンツについて、プラグインは
$(document).ready(function() {
$('.col').colorPicker();
});
しかし、jQuery によって生成された新しい ".col" オブジェクトもある場合は、"$('.col').colorPicker()" を再度実行して、これらのアイテムに ColorPicker オブジェクトをバインドする必要があります。
「$.colorPicker()」コマンドを実行せずに、プラグイン自体を使用してオンザフライでこれを行う可能性はありますか?
少し前に、「this['live']('click', fn)」でこれを行ったことを覚えていますが、これはもう機能していません..
編集:
現在、プラグインのコードは手元にありませんが、プラグインの基本構造を使用した別の例を示すことができます..
(function ($) {
function valueReplacer(element) {
this.element = element;
}
valueReplacer.prototype = {
// set a new value
setValue : function() {
this.element.val('new value');
}
}
// call method of colorPicker instance
function setValue() {
$.data(this, "colorPicker").setValue();
}
$.fn.valueReplacer = function() {
return this.each(function() {
// prevent multiple instances
if(!$.data(this, "valueReplacer")) {
$.data(this, "valueReplacer", new valueReplacer($(this)));
}
});
}
})(jQuery);
.. このサンプル プラグインが今やるべきことは、$(input).valueReplacer()
クリックしたときに入力 ( ) の値を「新しい値」に設定することだけです..
しかし、 valueReplacer オブジェクトでインスタンス化された要素がクリックされたときにメソッドが呼び出される.on
ように、どこでどのように設定する必要がありますか?setValue()