0

最近では、jQuery プラグインの開発と jQuery 全般について多くのことを学んでいます。$.fn.testplugin から initialize() 関数の外側に移動した単純な jQuery プラグインを作成しましたが、現在は initialize() 関数がグローバル スコープにあります。私の質問は、 $.fn.testplugin から initialize() 関数の外に移動する方法ですが、同時にローカルスコープにする方法です。

プラグイン:

(function($){
    function initialize($obj, color){
        $obj.css("color",color);
    };      

    $.fn.testplugin = function(options){
       var defaults = { 
        color: "red"
       };
       var option = $.extend(defaults, options);

       return this.each(function(){
        var $this = $(this);  
        initialize($this, option.color);
       });      
    };
})(jQuery);
4

2 に答える 2

2

あなたのinitialize()関数はグローバルスコープにありません。定義されているクロージャーを明示的に作成しています。initialize()投稿されたコードの最も外側の関数の外から関数にアクセスすることはできません。

于 2012-06-05T09:12:20.407 に答える
0

使用var:

var initialize = function() {};

これは、匿名関数のローカル スコープになります。

于 2012-06-05T09:12:11.710 に答える