Windows 양식 응용 프로그램에는 modernizr을로드 한 후 참조되는 Master.js 파일이 있습니다.yepnope/modernizer.load()를 사용하여 DOM 삽입을 감지 할 수 있습니까?
내 modernizer.load 테스트는 masterpage.js의 하단에있는 $ (document) .ready 함수로 선언하고 있으며 필요한 테스트를 기반으로 내 js 파일을로드하는 기능을 제공합니다.
즉 난이 시험하고자하지만
$(document).ready(function() {
Modernizr.addTest('mytest', $('section #myid').length > 0);
Modernizr.load({
test: Modernizr.mytest,
yep: ["custom1.js",
"customjs2.js"],
complete: {
//do stuff
}
}
});
});
은 document.ready에 잠재적이 후 발생할 수있는 DOM 삽입 지점에서 모두 수행된다. Modernizr 또는 jQuery에서 가능합니까?
내 목표는 리소스를 테스트에로드해야하는 DOM 요소를 삽입 할 수있는 잠재적 인 미래 포인트 이후에 테스트를 다시 선언하는 대신 모든 modernizr 테스트를 내 masterpage.js에 선언하는 것입니다.
아, 그리고'$ ('#에 대한 myid')는 '약간 빠른 것 : Livequery이 좋습니다. '# myid'가' '요소의 하위 클래스로로드 된 경우에만 작업을 수행하려는 경우 livequery 함수에서 해당 조건을 테스트하는 것이 더 읽기 쉽습니다. –
건배 Stu, 기본적으로 20 밀리 초마다 쿼리를 실행하는 것처럼 보일지라도 이것은 지금까지 최선의 선택 인 것 같습니다. 따라서 DOM 삽입 이벤트 (존재하지 않는 것으로 보임)에 응답하기보다는 선택기가 true가 될 때까지 기본적으로 확인합니다. – Tim
[Mutation Observers] (http://updates.html5rocks.com/2012/02/Detect-DOM-changes-with-Mutation-Observers) - 지속적으로 쿼리하지 않고 DOM을 모니터링 할 수있는 일부 브라우저의 새로운 기능 - 사용할 수없는 경우 Livequery로 되돌아갑니다. 지원을 확인하는 방법은 다음과 같습니다. https://gist.github.com/stucox/5231211 –