2012-03-19 3 views
1

Im jquery에 새로 추가되었으며 jquery에 대한 실험을 수행하는 동안이 문제가 발생했습니다. -> 삽입 된 html에서 작동하지 않는 div 함수에 클릭 기능을 삽입 할 수 있습니다. 왜 그 사람이 누군지 압니까? 사전Onclick 함수가 삽입 된 HTML에서 작동하지 않습니다

$(document).ready(function(){ 
$("#insertTest").click(function(){ 
$("#testDiv").html($("#testDiv").html() + '<p><a href="#" class="testClick">Click Me</a></p>'); 
}); 

$(".testClick").click(function(){ 
alert('Ahoy'); 
}); 

}); 

<a href="#" id="insertTest">Click to Insert</a> 
<div id="testDiv"> 
</div> 

답변

1

사용 방법 live()

$('.testClick').live('click', function(){ 
    alert('Ahoy'); 
}); 

편집에 감사 : jQuery를 1.7+ 표준을 지원 .on() 방법 http://api.jquery.com/on/, .live()이 추천되지 않습니다 .on() 대신 사용

+1

jQuery 1.7에서 .live()는 fav에서 더 이상 사용되지 않습니다. .on(). – j08691

+0

감사합니다. 업데이트 됨 –

+0

** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** live ** –

2

.live()의 사용 1.7이므로 향후 호환성을 보장하려면 대신 on()을 사용하십시오. jQuery를 1.7로서 live()

http://api.jquery.com/live/

중, .live() 메소드는 추천된다. .on()을 사용하여 이벤트 핸들러를 연결하십시오. 이전 버전의 jQuery 사용자는 .live()보다 우선하여 .delegate()를 사용해야합니다.

$('.testClick').on('click', function(){ 
    alert('Ahoy'); 
}); 
0

대신 .on를 사용 .live를 사용할 수 있지만 사용되지 않습니다. 그리고 html 삽입을 위해 .append을 사용할 수 있습니다. 여기

$("#insertTest").click(function() { 
    $("#testDiv").append('<p><a href="#" class="testClick">Click Me</a></p>'); 
}); 

$("#testDiv").on('click', '.testClick', function() { 
    alert('Ahoy'); 
}); 
관련 문제