[JQUERY] JSF / PrimeFaces 아약스 업데이트 휴식 jQuery를 이벤트 리스너 함수 바인딩
JQUERYJSF / PrimeFaces 아약스 업데이트 휴식 jQuery를 이벤트 리스너 함수 바인딩
해결법
-
1.문제의 원인에 관해서는, 아약스 요청은 아약스 응답에서 새로운 HTML 요소와 HTML DOM 트리를 업데이트합니다. 이러한 새로운 HTML 요소 -obviously- JQuery와 이벤트 핸들러 함수가 연결되어 있지 않습니다. 아약스 요청을 실행 재 그러나 .ready $ (문서) ()하지 않습니다. 당신은 수동으로 다시 실행해야합니다.
문제의 원인에 관해서는, 아약스 요청은 아약스 응답에서 새로운 HTML 요소와 HTML DOM 트리를 업데이트합니다. 이러한 새로운 HTML 요소 -obviously- JQuery와 이벤트 핸들러 함수가 연결되어 있지 않습니다. 아약스 요청을 실행 재 그러나 .ready $ (문서) ()하지 않습니다. 당신은 수동으로 다시 실행해야합니다.
이것은 다양한 방법으로 달성 될 수있다. 가장 간단한 방법은 CSTE 연구진은 $ (문서) (이벤트, 선택, 기능) 대신 $의 (선택) CSTE 연구진 (이벤트, 기능)를 사용하는 것입니다. 이 문서에 연결되어 주어진 EVENTNAME이 지정된 셀렉터에 일치하는 요소에 트리거 될 때 주어진 functionRef는 항상 호출됩니다. 명시 적으로 할 필요가 없습니다 그래서 JSF 수단에 의한 기능을 다시 실행합니다.
$(document).on("change", ":input", function() { console.log("From change event on any input: " + this.id); });
대체 방법은 명시 적으로 아약스 요청의 완료에 기능을 직접 다시 실행하는 것입니다. 이것은 당신이 실제로 즉시 준비 /로드 이벤트 기간 동안 기능을 실행에 관심있는 유일한 방법이 될 것입니다 (예를 들어 직접적 날짜 선택기와 같은 일부 플러그인 특정 동작 / look'n'feel를 적용). 첫째, 당신은 다음과 같이 재사용 가능한 함수에 .ready () 작업을 $ (문서)를 리팩토링해야합니다
$(document).ready(function(){ applyChangeHandler(); }); function applyChangeHandler() { $(":input").on("change", function() { console.log("From applyChangeHandler: " + this.id); }); }
(I 제거하고 완전히 불필요한 $의 .each () 접근 방식을 단순화합니다)
그런 다음, 아약스 요청의 완료에 그것을 재 - 실행에 다음과 같은 방법 중 하나를 선택합니다 :
from https://stackoverflow.com/questions/14400624/jsf-primefaces-ajax-updates-breaks-jquery-event-listener-function-bindings by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 데이터 속성 JQuery와에 잘못된 값을 얻을 (0) | 2020.10.30 |
---|---|
[JQUERY] 어떻게 특정 단어의 모든 인스턴스의 / 스타일 / 부품에 jQuery를 사용할 수 있습니까? (0) | 2020.10.30 |
[JQUERY] JQuery와 ATTR 한 번만 작동 ( '확인' '확인') (0) | 2020.10.30 |
[JQUERY] 외부 사이트의 페이지를로드 jQuery를 (0) | 2020.10.30 |
[JQUERY] 크롬에서 작동하지의 jQuery .load () (0) | 2020.10.29 |