jQuery click 기능이 Ajax 호출 후 작동하지 않습니까?
여기서 jQuery 클릭 기능은 정상적으로 작동합니다.
<div id="LangTable"><a class="deletelanguage">delete</a></div>
$('.deletelanguage').click(function(){
alert("success");
});
하지만 만약 내가 몇 가지 설정을 한다면<a>
에이잭스,$('.deletelanguage').click
동작하지 않습니다.
예를들면
function CreateRow(jdata) {
$('#LangTable').append('<a class="deletelanguage">delete</a>');
}
$.ajax({
url: "/jobseeker/profile/",
success: CreateRow
});
자, 이제.$('.deletelanguage').click
마지막으로<a>
동작하지 않습니다.
jsfiddle의 예:http://jsfiddle.net/suhailvs/wjqjq/
주의: 여기서 CSS는 정상적으로 동작합니다.
나는 이것들을 새로 붙이고 싶다.<a>
jQuery 클릭으로 작업합니다.
문제는 .click이 페이지에 이미 있는 요소에 대해서만 작동한다는 것입니다.이런 걸 써야 돼요.on
미래 요소를 배선하는 경우
$("#LangTable").on("click",".deletelanguage", function(){
alert("success");
});
사용할 때$('.deletelanguage').click()
이벤트 핸들러를 등록하려면 코드 실행 시 돔에 존재하는 요소에만 핸들러를 추가합니다.
여기서 위임 기반 이벤트 핸들러를 사용해야 합니다.
$(document).on('click', '.deletelanguage', function(){
alert("success");
});
$('body').delegate('.deletelanguage','click',function(){
alert("success");
});
또는
$('body').on('click','.deletelanguage',function(){
alert("success");
});
클래스는 동적으로 추가되므로 이벤트 위임을 사용하여 다음과 같이 이벤트핸들러를 등록해야 합니다.
$('#LangTable').on('click', '.deletelanguage', function(event) {
event.preventDefault();
alert("success");
});
이 조작에 의해서, 이 이벤트가, 이하의 임의의 앵커에 부가됩니다.#LangTable
요소, 전체 검사 범위를 줄입니다.document
요소 트리와 효율성이 향상됩니다.
여기 FILDLE이거기서
코드와 동일하지만 동적으로 생성된 요소에서 작동합니다.
$(document).on('click', '.deletelanguage', function () {
alert("success");
$('#LangTable').append(' <br>------------<br> <a class="deletelanguage">Now my class is deletelanguage. click me to test it is not working.</a>');
});
클릭 이벤트는 이벤트가 정의된 지점에 존재하지 않습니다.라이브 또는 위임 이벤트를 사용할 수 있습니다.
$('.deletelanguage').live('click',function(){
alert("success");
$('#LangTable').append(' <br>------------<br> <a class="deletelanguage">Now my class is deletelanguage. click me to test it is not working.</a>');
});
나에게 맞는 간단한 솔루션을 테스트했습니다!나의 Javascript는 js의 별도 파일에 있었다.제가 한 일은 새로운 요소의 javascript를 ajax가 로딩된 html에 넣었는데, 저는 잘 작동합니다!javascript의 큰 파일을 가지고 계신 분들을 위한 것입니다!!
언급URL : https://stackoverflow.com/questions/17715274/jquery-click-function-doesnt-work-after-ajax-call
'programing' 카테고리의 다른 글
OPTIONS http 메서드의 스프링 보안 비활성화 (0) | 2023.03.19 |
---|---|
WordPress를 통해 액세스할 수 있는 커스텀 기능 필요 (0) | 2023.03.19 |
Sys.WebForms.PageRequestManagerServerErrorException:서버에서 요청을 처리하는 동안 알 수 없는 오류가 발생했습니다." (0) | 2023.03.19 |
Zend 프레임워크 및 Wordpress 통합 (0) | 2023.03.19 |
네스트된 ng-repeat이 비어있지 않은 경우에만 요소를 표시하려면 어떻게 해야 합니까? (0) | 2023.03.19 |