0

jQuery オブジェクト自体から jQuery プラグインを呼び出すのに問題があります。だから電話するより電話$(selector).myPlugin()したい$.myPlugin。何らかの理由で、関数が未定義であることがわかります。

これが私のコードです:

(function ($) {

    var _current = null;

    var methods = {
        init: function (options) {
            _current = $('.rfgQuestionsWrapper').filter(function () {
                return $(this).css('display') != 'none';
            }).first();
            console.log(_current);
            $('.gaugeTitle').click(function (e) {
                var rfgCode = $(this).parent().find('.gaugeWrapper').attr('id');
                console.log(rfgCode);
                showByCode(rfgCode);
                return false;
            });
        },
        showByCode: function (rfgCode) {
            var target = $.utilities.filterById('.rfgQuestionsWrapper', rfgCode);
            console.log(target);
            _current.hide();
            target.show();
        }
    };

    $.fn.navigationManager = function (method) {
        if (methods[method]) {
            return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
        } else if (typeof method === 'object' || !method) {
            return methods.init.apply(this, arguments);
        } else {
            $.error('Method ' + method + ' does not exist on jQuery.tooltip');
        }
    };

})(jQuery);

この方法でプラグインを呼び出すのはこれが初めてなので、何か間違ったことをしているに違いありません...何か提案はありますか?

4

1 に答える 1

1

その質問を見てください: jQuery では、$.myFunction と $.fn.myFunction の違いは何ですか?

基本的に$.fn.navigationManager = function(){}あなたが書く代わりに$.navigationManager = function(){}

于 2012-06-04T12:47:45.977 に答える