2011-10-14 6 views
1

전 HTML에서 테이블에 행을 동적으로 추가해야합니다. 또한 div 클래스의 click 이벤트를 catch해야합니다. 어떻게 생각하십니까?클릭 이벤트가 jQuery에서 작동하지 않습니다.

자바 스크립트 :

$(document).ready(function() { 

    $("#click").click(function() { 
     $('table').prepend('<tr> <td>something3</td> <td> <a><div class="s"> s </a> </td></tr>'); 
    }); 


    $(".s").click(function() { 
     alert("Ok"); 
    }); 

}); 

HTML :

<input type="button" id="click" value="click"/> 

<table width='100%'> 
    <tr><td>something</td><td>else here</td></tr> 
    <tr><td>something2</td><td>else here2</td></tr> 
    <tr><td>something3</td><td>else here3</td></tr> 
</table> 
+0

추가 할 HTML 코드는 엉망입니다. 그것을 고쳐야합니다. – ThiefMaster

답변

4

는 당신이 지정된 셀렉터에 일치하는 DOM의 모든 현재 및 미래의 요소에 대한 이벤트를 바인딩 할 수는 live() 방법을 참조하십시오.

$(".s").live('click', function(){ 
    alert("Ok"); 

}); 

jQuery docs 말 :

이 있음을


을 지금 현재의 선택을, 일치하는 모든 요소의 이벤트 핸들러를 연결하고 미래에 답변은 jQuery 1.6.4가 왕이었던 2011 년 10 월에 작성되었습니다. live()은 (는) on()을 사용하여 1.7에서 더 이상 사용되지 않습니다. 동일한 구문이 이제 있습니다.

$(document).on("click", ".s", function(){ 
    alert("Ok"); 
}); 
+0

대부분의 jQuery 전문가는 .live 함수 대신 .delegate 함수를 사용하는 것이 좋습니다. http://test.kingdesk.com/jquery/bind_live_delegate.php –

+0

정확하지만 대리자는 더 빠르고 유연한 것으로 간주됩니다 (체인 - 가능). http://api.jquery.com/delegate/ – rdjs

+0

()에 대한 이전 답변이 게시되었습니다.이 답변은 http://stackoverflow.com/questions/8359085/delegate-vs-on에 게시되었습니다. – rdjs

관련 문제