JQuery插件默认值和选项

use*_*065 5 jquery options defaults

如何将插件中的以下属性/变量转换为可以从文档准备好设置的默认值和选项?

//插件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);
Run Code Online (Sandbox Code Playgroud)

//文件准备在页面中:

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

Sin*_*eta 17

最简单的模式是扩展默认选项对象.但它确实意味着任何参数必须作为"选项"对象一起传递,例如: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);
Run Code Online (Sandbox Code Playgroud)