2011-09-13 3 views
12

내 jQuery .ready 함수에있는 코드 중 일부 (물론, 거의 전부)는 윈도우 크기를 조정할 때 레이아웃 작업이므로 적용됩니다. 그러나 동일한 코드이므로 어떻게 두 코드를 "결합"하여 코드가 반복되지 않고 유지 관리가 엉망이 될 수 있습니까?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

$ (window) .resize (function() {// do anything}). 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 
    } 
});