3

単に:

(function($){
    $.fn.plugin = function()
    {
        // results in error
        // when called like
        // $.plugin();
    }
})(jQuery);

エラーは次のとおりです(Chromeコンソールからコピー):

Uncaught TypeError: Object function ( selector, context ) {
        // The jQuery object is actually just the init constructor 'enhanced'
        return new jQuery.fn.init( selector, context, rootjQuery );
    } has no method 'plugin'

要素を選択せず​​にプラグインを機能させるには、どのような規則に従う必要がありますか?

4

3 に答える 3

6

関数を直接$.plugin次のように割り当てるだけです。

(function($){
    $.plugin = function()
    {
        // ...
    }
})(jQuery);

もちろんthis、選択した要素を参照するのではなく、jQueryそれ自体を参照します。

于 2012-05-07T10:47:58.597 に答える
0

問題は、オブジェクト $.fn のメソッドとしてプラグインを発表し、オブジェクト jQuery のメソッドとしてプラグインへのアクセスを取得しようとしていることです。

于 2012-07-12T09:52:52.427 に答える
0

jQuery の規則を守り、次のように使用することをお勧めします。

$(this).plugin()
于 2012-10-27T15:40:47.237 に答える