2012-01-18 13 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 (सत्य, {}, डिफ़ॉल्ट, विकल्प) '' - उम्मीद है कि यह जानकारी दूसरों के कुछ घंटों बचाती है – sics

संबंधित मुद्दे