0

このスタイルガイドの最初のもののバリアントを使用して、自分のニーズに合わせて単純な jQuery プラグインを作成しようとしています。

;(function($) {
    var plugin_name = 'my_plugin',
        defaults = {};

    function Plugin ( element, options ) {
        this.element = element;

        this.options = $.extend( {}, defaults, options );

        this._defaults = defaults;
        this._name = plugin_name;

        this.init();
    }

    Plugin.prototype = {
        init: function () {
            // Plugin code - attempt to debug
            alert('hi');
        }
    }

    $.fn[plugin_name] = function ( options ) {
        return this.each(function () {
            if (!$.data(this, 'plugin_' + plugin_name)) {
                $.data(this, 'plugin_' + plugin_name, new Plugin( this, options ));
            }
        })
    }

})( jQuery );

ただし、呼び出しても実行されないようです。ここでフィドル: http://jsfiddle.net/DCRnU/

$(document).ready(function() {
    $.fn.my_plugin();
});

私は何を見逃していますか?

4

2 に答える 2

0

関数を正しく呼び出していません。
HTML に要素がある場合div、次のように関数を呼び出すことができます。

$(document).ready(function() {
  $("div").my_plugin();
});

フィドルの例

于 2013-10-13T08:50:43.317 に答える
0

これは、次の行のためです。return this.each

反復可能なオブジェクトを取得することが期待されています。しかし、それをループするものは何もありません。

次のようなものを追加すると:

var array = [1];
$(array).my_plugin();

大丈夫です。

于 2013-10-13T08:54:18.430 に答える