0

私は 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()

4

3 に答える 3

0

marko が述べたように、 live() は $(document).on('action', 'selector', callback) と記述できるようになりました

これは、ドキュメントをクリックし、クリックした場所がセレクターと一致する場合、コールバックが発生することを意味します。詳細については、jQuery on() ドキュメントを確認してください。

于 2013-03-31T21:31:50.630 に答える