2011-09-13 16 views
12

JQuery'imde bulunan kodumun bir kısmı (hemen hemen tümünde) .seçenek, aynı zamanda, pencere düzeni yeniden düzenlendiğinde de geçerlidir. Ancak, aynı kod olduğu için, iki işlevi nasıl "birleştirebilirim", böylece kodum kendiliğinden tekrarlanmıyor (ve bakıma karışma).jQuery birleştirir .ready ve .resize

Teşekkürler!

cevap

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

function myfunction() { 
    // do whatever 
} 

Başka bir teknik diğer iç .trigger() bir olay şudur:

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

Eğer $(document).ready gerek önlemek için sayfanın alt kısmında kodunuzu koyarsanız, daha basit olur:

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

Ve hatta daha basit: $ (window) .resize (function() {// ne yaparsanız yapın}). Resize(); –

+2

@ Kudla69 JQuery'de sadece '.thing()' yerine '.trigger ('thing')' yazmayı tercih ediyorum, çünkü bir okuyucu olarak daha net görüyorum. – Blazemonger

+0

Bunun nasıl yardımcı olabileceğini görüyorum. Her şeye rağmen, iyi cevap! :) –

7

Böyle bir şey mi ??

function mySetupFunction() { 
    // stuff here. 
} 

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

Bir daha iyi seçenek

$(window).on("load resize",function(e){ 
    function abc() { 
    // code here 
    } 
});