2011-09-13 13 views
12

मेरे jQuery का कुछ (ठीक है, लगभग सभी) जो मेरे jQuery में है। पहले से ही फ़ंक्शन का आकार बदलता है, क्योंकि यह लेआउट काम करता है। हालांकि, चूंकि यह वही कोड है, मैं दो कार्यों को "गठबंधन" कैसे कर सकता हूं, ताकि मेरा कोड खुद को दोहराया न जाए (और बनाए रखने के लिए गड़बड़ हो)?jQuery गठबंधन .ready और .resize

धन्यवाद!

उत्तर

41
$(document).ready(myfunction); 
$(window).on('resize',myfunction); 

function myfunction() { 
    // do whatever 
} 

एक और तकनीक एक दूसरे के अंदर .trigger() एक घटना के लिए है:

$(window).on('resize',function() { 
    // do whatever 
}); 
$(document).ready(function() { 
    $(window).trigger('resize'); 
}); 

आप $(document).ready की आवश्यकता होगी, से बचने के लिए पृष्ठ के तल पर अपने कोड डालें, तो वह और भी आसान हो जाता है:

$(window).on('resize',function() { 
    // do whatever 
}).trigger('resize'); 
+0

और यहां तक ​​कि सरल: $ (विंडो) .resize (फ़ंक्शन() {// जो भी हो}}। आकार बदलें(); –

+2

@ Kudla69 मैं हमेशा jQuery में '.thing()' की बजाय '.trigger ('thing') लिखना पसंद करता हूं, सिर्फ इसलिए कि मुझे इसे पाठक के रूप में अधिक स्पष्ट लगता है। – Blazemonger

+0

मैं देखता हूं कि इससे कैसे मदद मिल सकती है। भले ही, अच्छा जवाब! :) –

7

ऐसा कुछ ??

function mySetupFunction() { 
    // stuff here. 
} 

$(document).ready(mySetupFunction); 
$(window).resize(mySetupFunction); 
6

एक और बेहतर विकल्प

$(window).on("load resize",function(e){ 
    function abc() { 
    // code here 
    } 
}); 
संबंधित मुद्दे