2012-01-18 23 views
5

Eklentimdeki şu özellikleri/değişkenleri belgeden hazırlanabilecek varsayılanlara ve seçeneklere nasıl dönüştürebilirim?JQuery Eklentisi Varsayılanları ve Seçenekler

// eklenti 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); 

// sayfasında hazır belgelemek:

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

cevap

15

en basit model seçenekleri nesne varsayılan uzatmaktır görüyoruz. Ama herhangi bir parametre örneğin bir "seçenek" nesne gibi birlikte geçirilecek gerektiği anlamına gelmez: 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

bunu yapabileceğinden '' defaults.foo.bar'' gibi seçenekler iç içe geçmiş durumda yinelemeli gerçekleşmesi istiyorsanız , ilk parametre olarak '' true'' kullanın. örneğin: '' $ .extend (true, {}, varsayılanlar, seçenekler) '' - umarım bu bilgi başkalarının saatlerini kaydeder – sics