2011-09-13 12 views
12

Niektóre (dobrze, prawie wszystkie) z mojego kodu, który jest w mojej funkcji jQuery .ready ma zastosowanie również, gdy okno jest zmieniany, ponieważ jest to praca układu. Jednak skoro jest to ten sam kod, jak mogę "połączyć" te dwie funkcje, aby mój kod się nie powtórzył (i był bałagan do utrzymania)?jQuery połączyć .ready i .resize

Dzięki!

Odpowiedz

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

function myfunction() { 
    // do whatever 
} 

Inną techniką jest .trigger() jedno zdarzenie wewnątrz drugiego:

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

Jeśli umieścisz kod na dole strony, aby uniknąć konieczności $(document).ready, to staje się jeszcze prostsze:

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

Jeszcze prostsze: $ (window) .resize (function() {// zrób wszystko}). Resize(); –

+2

@ Kudla69 Zawsze wolę pisać '.trigger ('thing')' zamiast tylko '.thing()' w jQuery, tylko dlatego, że uważam to za czytelniejsze. – Blazemonger

+0

Widzę, jak to może pomóc. Bez względu na to, dobra odpowiedź! :) –

7

Coś takiego?

function mySetupFunction() { 
    // stuff here. 
} 

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

Jeszcze jedna lepsza opcja

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