jquery를 사용하여 DOM에 입력을 추가하고 제거하는 페이지가 있습니다. 그들 중 일부는 클래스 ("숫자")를 공유합니다. 각 입력이 추가되면 코드에서 "숫자"클래스가있는 모든 새 입력에 .numeric()을 호출해야합니다. 이 블록을 코드 시작 부분에 정의했습니다.jQuery를 사용하여 DOM에 입력을 추가 할 때 함수 호출
$('input.numeric')
.live('load', function() {
$(this).numeric();
});
로드가 추가 된 노드와 관련이없는 것 같습니다. 준비 이벤트가 작동하지 않습니다.
어떻게하면됩니까? 감사의 동료
편집 : 나는 다음과 같은 @BGerrissen 방법을보다 일반적인 방법으로 해결할 수있었습니다. 이미 추가를위한 래퍼 (draw)를 정의하고, 추가 할 때마다 $(document).trigger('appended')
을 트리거하므로 어디서나 쉽게 추적 할 수 있습니다. 그럼 내가 사용한다
$(document)
.bind('appended', function() {
$('input.numeric').numeric();
});
내가 원하는 것을 할 수있다. 건배
감사합니다. 하지만이 코드를 훨씬 더 많은 코드에 추가 할 때해야 할 일은 무엇입니까? – Korcholis
검색 및 바꾸기 또는 도우미 메서드 만들기, 여전히 검색 및 바꾸기가 필요합니다. 정말 쉽고 깨끗한 방법은 없습니다. jQuery의 .append() 메소드를 오버라이드 (override)하여 항상 "추가 된"이벤트를 발생시킬 수는 있지만, 그에 대해 진지하게 조언 할 것입니다. – BGerrissen
.live() 메서드는 jQuery 버전 1.7에서 더 이상 사용되지 않으며 .bind()는이 방법을 사용하여이 예제를 직접 복사 할 수도 있습니다. – netpoetica