앞으로 추가할 요소는 ajax 스플라이싱입니다
My on은 이렇게 써있습니다
$("td").on("click","a",function(){ alert("Aha!"); });
페이지의 라벨입니다
<td><a class="topic_a" href="#creat" name='${data.context }'>选择</a></td>
ajax 스플라이싱 태그는 위 태그와 완전히 동일합니다.
하지만 접합된 라벨을 클릭해도 아무런 효과가 없습니다.
왜?
on을 바인딩할 때 td가 이미 DOM에 존재하는지 확인하세요..
또한..live가 document에 바인딩되어 있기 때문에 live가 가능한 이유..Document는 언제든지 존재합니다.. Your
이벤트 td가 존재하지 않으면 확실히 바인딩되지 않습니다.
이벤트 프록시 메커니즘에 대해 자세히 알아보세요.
향후 추가되는 요소에는 b6c5a531a458a2e790c1fd6421739d1c ?
b6c5a531a458a2e790c1fd6421739d1c가 포함된 경우 이벤트 프록시를 $("td")에 바인딩할 수 없습니다.
이벤트 프록시는 상위 요소에 바인딩되어야 합니다.
예를 들어 f5d188ed2c074f8b944552db028f98a1 또는 f5d188ed2c074f8b944552db028f98a1의 상위 요소는 예를 들어 본문이나 문서에 바인딩할 수도 있습니다. ,
$("body").on("click","a",function(){ alert("Aha!"); });
바인딩 이벤트가 앞에 적혀있고, 나중에 td가 추가된다면 당연히 그런 이벤트는 없을 겁니다.
또한 td가 페이지에 기록되었는지 확인하세요.
live 메소드는
jquery
향후 요소를 얻으려면 특정 작성 방법만 사용할 수 있습니다. //div是页面已经有的元素,button是js生成的未来元素!
$("div").delegate("button","click",function(){
$("p").slideToggle();
});
$(document).on('click', 'td a', function() {
alert("Aha!");
});
$("body").delegate("td","click",function(){
alert("ok!");
});
on을 사용하여 바인딩할 때 td가 이미 돔에 존재하는지 확인하세요..
또한...live가 문서에 바인딩되어 있기 때문에..문서는 언제든지 존재합니다. .
이벤트 프록시 메커니즘에 대해 자세히 알아보세요.
$("body").on("click","td a.topic_a",function(){ alert("Aha!"); });
이벤트 프록시는 상위 요소에 바인딩되어야 합니다.
예를 들어 f5d188ed2c074f8b944552db028f98a1 또는 f5d188ed2c074f8b944552db028f98a1
$("body").on("click","a",function(){ alert("Aha!"); });
위 내용은 jquery에서 live 메소드를 on 메소드로 대체하는 문제에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!