현재로서는 우리는 레일스 프로젝트를위한 하나의 common.js 파일에서 사이트 전체의 이벤트 리스너를로드하고 있습니다. 우리는 거기에 포함 된 절충안을 (대부분) 알고 있으며, 단지 완화하려고합니다. 기본 아키텍처가 확보되면 컨트롤러 또는보기별로 파일을 분리 할 수 있습니다. 아무도 주위에 없을 때 이벤트 리스너가 숲에서 선언 된 경우Javascript 이벤트 수신기가 호출되고 대상 요소가없는 경우 어떻게됩니까?
: 순간
는 빠른 질문은 필요한 경우에만 우리는 망가, 의사 선 질문을 구걸하는이를 활성화 할 수있는 방법입니다 그것을 듣기 위해, 그것은 여전히 소리가나요? 즉, 하나는 주어진 페이지에 자바 스크립트의 기본 리스너 (예., .live()
또는 .delegate()
같은 지속적인 아무것도)를 선언하고 대상 요소가 특정 페이지에 실제로 존재하지 않는 경우는, 정말 아무것도하지 그런데 그것을 평가하고 요소에 대한 DOM을 확인하는 데 사용되는 몇 가지주기 이외의 다른 일이 발생 했습니까? 그것은 그 요소를 찾고있는 기억에서 활발한가요? 다른 것? 다른 컨텍스트에서 null/nil/invalid 유형의 오류를 생성하는 것과 같은 호출이 주어진다면 오류를 던진 것처럼 보이지 않습니다. 예컨대
:
$(document).ready(function() {
$('#element').bind('blur keyup', function);
}
#element
그 가정은 존재하지 않는다. 실제로 일어나는 일이 있습니까?
$(document).ready(function() {
if ($('#element')) {
$('#element').bind('blur keyup', function);
}
을 또는 단순히 $(document).ready
에 존재하지의 요소에 선언 된 기본 수신기를 무시 똑똑 브라우저에서의 .js 통역은 다음과 같습니다 또한 그것은 어떤 같은 프리 필터에 포장하는 것이 좋습니다? 위의 초기 간단한 형식을 선언하고 그 부분을 남겨 두거나 먼저 요소를 확인하여 몇 가지 귀중한 자료를 저장하거나 보이지 않는 오류를 피할 수 있습니까? 아니면 또 다른 각도가 있습니까?
감사합니다.
은 관련 맥락에서, 나는 단순히 신체 클래스를 기반으로 거의 모든 상황에서 청취자와 다른 스크립트를 분리하는 아름답고 우아한 방법을 발견 : [링크] (http://stackoverflow.com/questions/4480158/how-to-separate-jquery-event-on-page) 그러나 이것은 가장 큰 질문에 대답하지 못합니다. 간단히 말해서 : 청취자가 호출되고 요소가 누락되었을 때 실제로 어떤 일이 일어나고 있습니까? – XML