이 문제를 처리하는 데는 두 가지 방법이 있습니다. 하나는 문의 번호 unregister
방법을 이용하는 것입니다. 다른 하나는 setup
콜백과 deferSetup
플래그를 이용하는 것입니다.
setup
콜백은 한 번만 호출됩니다. 일반적으로 쿼리가 등록 될 때 즉시 호출되지만 deferSetup
플래그와 함께 사용하면 쿼리가 처음으로 일치 할 때까지 설정이 지연됩니다 (불행히도 문의 할 때 항상 match
콜백이 필요하므로 여기에 빈 함수를 제공합니다) : 쿼리를 등록 취소, 예상대로
enquire.register("screen and (max-width: 979px)", {
setup : function() {
$(.nav-collapse .nav).prepend($("li:last"));
},
deferSetup : true,
match : function() {}
});
unregister
방법은 않습니다. http://codepen.io/WickyNilliams/pen/vFLEH 또한
, 위의 코드에서 참고, 당신이 아니에요 :
여기
enquire.register("screen and (max-width: 979px)", {
match : function() {
$(.nav-collapse .nav).prepend($("li:last"));
//note this unregisters *all* handlers for this mq (if you have more than one)
enquire.unregister("screen and (max-width: 979px)");
}
});
이 두 가지 접근 방법을 보여주는 작업 예이다 : 우리는 우리의 일치 콜백 내에서 unregister
를 호출 할 경우 우리는 또한 같은 효과를 얻을 수 있습니다 var
키워드를 사용하여 변수를 초기화하십시오. var
없이 선언 된 변수가 전역 범위에 첨부되어 있기 때문에 JS에서 나쁜 관행입니다. 이는 아마도 원하는 것이 아닙니다.