2012-01-18 8 views
5

プラグインの次のプロパティ/変数を、ドキュメントから設定できるデフォルトとオプションに変更するにはどうすればよいですか?JQueryプラグインのデフォルトとオプション

//プラグインのJS:

(function($){ 
    $.fn.myPlugin = function(options){ 
     var myForm = this; 
     myForm.variable1 = true; 
     myForm.variable2 = true; 
     myForm.variable3 = true; 
     myForm.variable4 = true; 

     ... 

     if(myForm.variable1){ 
     // do something 
     } 

     ... 
    } 
})(jQuery); 

//ページに準備ができて文書化:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#form1').myPlugin(); 
    }); 
</script> 

答えて

15

を参照してください。しかし、それはすべてのパラメータは、「オプション」のオブジェクト、例えばとして一緒に渡さなければならないことを意味しない:myPlugin({variable2:false})

(function($){ 
    $.fn.myPlugin = function(options){ 

     var defaults = { 
      variable1 : true, 
      variable2 : true, 
      variable3 : true, 
      variable4 : true 
     } 

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

     if(settings.variable1){ 
     // do something 
     } 

     ... 
    } 
})(jQuery); 
+1

あなたはこれを再帰的に起こるたい場合は、 '' defaults.foo.bar''のようなオプションを入れ子にしている場合には最初のパラメータとして '' true''を使います。例: '' $ .extend(true、{}、defaults、options) '' - この情報は他の人の数時間を節約します – sics

0

、以下を参照してください。

$('#form1').myPlugin({variable1 : true, variable2: false....}); 

を使用
(function($){ 
    $.fn.myPlugin = function(options){ 

    options.variable1 = true; 
      options.variable2 = true; 
      options.variable3 = true; 
      options.variable4 = true; 
    } 
})(jQuery); 

適切な方法については、最も単純なパターンは、デフォルトのオプションオブジェクトを拡張することです

http://jquery-howto.blogspot.com/2009/01/how-to-set-default-settings-in-your.html