1

本当にシンプルなjQueryプラグイン「helloworld」で遊んでいますが、jQueryプラグインのボイラープレートに問題があります。単純でよくコメントされていても、たとえば、どのjQueryメソッドを使用してもエラーが発生します。これが私のinit関数です。

    Plugin.prototype = {

    init: function() {

        console.log(this, this.element); // this.element return my element works fine

        this.element.on('click', function() { // 'undefined' is not a function :(
            alert('whoa'); 
        });

        this.element.click(function() {  // not working at all :'(
            alert('whoa'); 
        });

    },

    open: function(el, options) {
        // some logic
    }
};

ヒントを教えていただけますか?

4

1 に答える 1

2

jQuery プラグインを作成するためのフレームワークを使用しているため、その規則に従う必要があります。

を実行しているだけの場合$.fn.plugin = function(){}、は への参照thisであるため、jQuery オブジェクトになります。$.fnjQuery.prototype

あなたのフレームワークでthis.elementは、 はネイティブ DOM 要素であるため、jQuery メソッドを使用するには、それを でラップする必要があります$()

$(this.element).on('click', function(){
});
于 2012-12-18T14:27:07.227 に答える