2012-01-18 29 views
5

Làm cách nào để chuyển các thuộc tính/biến sau trong plugin của tôi thành mặc định và các tùy chọn có thể được đặt từ tài liệu sẵn sàng?Mặc định và các tùy chọn JQuery Plugin

js // plugin:

(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); 

// tài liệu sẵn sàng trong page:

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

Trả lời

15

Các mô hình đơn giản nhất là để mở rộng mặc định tùy chọn đối tượng. Nhưng nó không có nghĩa là bất kỳ thông số phải được thông qua với nhau như một "lựa chọn" đối tượng, ví dụ như: 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

nếu bạn muốn điều này xảy ra một cách đệ quy trong trường hợp bạn đã lồng tùy chọn như '' defaults.foo.bar'' , sử dụng '' true'' làm tham số đầu tiên. ví dụ: '' $ .extend (true, {}, mặc định, tùy chọn) '' - hy vọng thông tin này tiết kiệm một số giờ của người khác – sics

Các vấn đề liên quan