저는 현재 프로젝트를 위해 Jquery를 공부하기 시작했습니다. Jquery 객체의 선택자와 리스너에 대해 혼란스러워합니다.Jquery 선택기 및 이벤트 수신 논리?
$("input").change(function() {
alert("Handler for .change() called.");
});
http://api.jquery.com/change/이 정확한 복사본은 ... 나는 ".target"에서 "입력"에서 선택을 변경했습니다.
그러나 입력 이벤트는 change 이벤트에 의해 처리되지 않습니다.
이 오류가 발생합니다. 그리고 나는 꽤 입력 이름이있는 요소가 있다고 확신한다.
"Uncaught TypeError : null functions.js : 378 (익명 함수)의 'change'속성을 읽을 수 없다".
논리가 잘못되었거나 구문 오류가 있습니까? 이 오류를 많이 좁히지 만 여전히 문제가 보이지 않습니까?
------ EDIT ------
나는 모든 답변을 테스트합니다. jquery 선택자를 통해 요소에 할당 된 이벤트 처리기/수신기. 코드가 실행될 때 아래
$("selectorStatement").EventHandlerShortCut(function() {
//Some code
});
$("input").change // Change handler for ALL INPUT elements
JQUERY 엔진 얻을 모든 입력 요소 (! 선언 순간 -THE 순간 핸들러 executed- !! 존재되는 모든 입력 요소)
그 이후에 새로운 요소가 생성되면 Handler는이를 인식하지 못합니다. 이것을 방지 할 수있는 유일한 방법은 $ (document) .ready를 사용하여 전체 문서를 만든 후에 코드를 호출하는 것입니다. @Henrik Peinar, @Chandrika Prajapati, @GZ, @Gaurav, 그들의 답변에서 언급 @Mzn ...으로
이 외에도, 내 경우 는 나는 를 사용하여 몇 가지 입력을 생성document.anElement.innerHTML = "<foo></foo>"
문서가 준비된 후에 사용됩니다. 이 경우에는 2 가지 방법이 있습니다.
이 foo 요소는 문서가 렌더링되는 동안 생성 될 수 있습니다. 사용하여
display:none
문서가 준비되면 jquery 엔진에서 요소를 읽을 수 있습니다. 온다 때 볼 수 있습니다.
또는.
$("fooSelector").handlerType(...
페이지가 동적 인 동안 처리기 호출자를 다시 호출 할 수 있습니다. 쉬운 해결책이지만 쉽지는 않습니다.
이 줄은 페이지 맨 아래에 있어야합니까? (입력 요소가 선언 된 후) – user2102266
언급 한 user2102266처럼이 스크립트가 실행될 때 실제로 입력이 있는지 확인하십시오. 스크립트를 다음으로 묶을 수 있습니다 : $ (document) .ready (function() {}); –
이 오류를 피할 수있는 유일한 방법은 쿼리 할 때 요청한 요소를 DOM에 준비시키는 것입니다 –