2013-08-22 6 views
0

내가 크롬과 파이어 폭스에서 다음 코드를 시도하고 만 NATIVE 크기 변경 기록지고 :다른 스크립트가 jQuery (window). resize()를 하이재킹합니까?

window.onresize = function(){ console.log("NATIVE RESIZE") } 

jQuery(window).resize(function(){ console.log("JQUERY RESIZE") }); 

jQuery.resize() 발사하지 마십시오. window.onresize는 브라우저 창 크기를 조정할 때 거의 지속적으로 발생합니다 (나중에 debounce를 구현합니다).

이 생태계 내에서 실행되는 유일한 JavaScript는 아닙니다.이 스크립트는 WordPress + 테마 설치의 컨텍스트에서 실행되므로 this jsfiddle이 예상대로 완벽하게 작동하기 때문에 분명히 다른 것이 있습니다.

다른 스크립트를 체계적으로 비활성화하지 않고도 jQuery.resize()가 하이재킹되는 것을 어떻게 처리 할 수 ​​있습니까? 그리고 어떻게 jQuery.resize()를 납치 할 수 있습니까? jQuery.resize()를 호출하면 대기열에 처리기가 추가되고 이미있는 것만 완전히 대체되지 않는다고 생각했을 것입니다 ...

+2

'$ (function() {...});'에 jquery를 래핑 했습니까? – twinlakes

+0

이 예제에는 없습니다. 왜? noconflict 모드에서 jquery를 사용하고 있습니다 ... –

+0

이것을 다른 페이지에서 또는 동시에 시도 했습니까? jQuery 이벤트와 기본 이벤트를 함께 사용하면 충돌이 발생할 수 있습니다. – Guffa

답변

0

또 다른 스크립트는 jQuery (window) .resize() 큐를 글로벌 바인딩 해제 : jQuery(window).unbind('resize').

이것은 정확하게 이러한 이유로는 좋지 않습니다. 해결책 : 절대적으로 이어야합니다. 처리기를 바인딩 해제하고 익명 함수에서 네임 스페이스 함수로 핸들러를 옮깁니다. 그런 다음 네임 스페이스가 지정된 상황에서 jQuery(window).unbind('resize', yourFunction)