2013-04-30 5 views
2

모든 tr (내가 그들을 lickable하게 만들 필요가 있습니다)와 내 tr (다른 링크)의 마지막 td를 선택하는 데 문제가 있습니다. 누군가 코드를 도와 줄 수 있습니까? 나는 그것을 밖으로 설정하는 것 같습니다. 코드는 합법적이지만 작동하지 않습니다.JQuery 선택기가 td에서 작동하지 않습니다

JS

$(".rand_notif td:lt(2)").click(function(){ 
    $(".rand_notif").html("asd"); 
}) 

HTML (somehow..still JS하지만 HTML)

$.each(data.notif,function(i,x){ 
    var cant=''; 

    if(x.cant>0){var cant = x.cant+"x";} 
    notificari+="<tr class='spacer_2'></tr><tr class='notificari rand_notif' record='"+x.id+"'><td>"+cant+"</td><td>"+x.nume+"</td><td>Refuz</td></tr>"; 
}); 

실제 HTML

: 여기에 JS와 HTML이고
<table cellspacing="0" id="tabel_notificari"> 
    <tr class="spacer_1"></tr> 
    <tr class="table_head notificari"> 
     <th width="30"></th> 
     <th>Notificari</th> 
     <th width="86"></th> 
    </tr> 
</table> 

편집 : 문제가 해결되었습니다. 문제는 주석에서 설명했듯이 요소가 처음으로 바인딩 된 다음 추가 되었기 때문에 바인딩이 존재하지 않았다는 사실입니다. 솔루션 :

$("#tabel_notificari").on("click", ".rand_notif td:lt(2)",function(){$(".rand_notif").html("asd");}); 
+2

나는 td 만 표시합니다. – rncrtr

+1

언제 클릭 리스너를 연결 하시겠습니까? 'rand_notif' 클래스가있는 행이 페이지 상에 존재하기 전에'click'이 기존 요소에만 바인드하므로 트리거하지 않습니다. jquery 함수를 사용하여 위임을 사용하거나 문서에 추가 한 후에 바인드해야합니다 :'on()','delegat()'또는'live()' – scrappedcola

+0

. 그것은 일했다! –

답변

2

자바 스크립트를 통해 표 셀을 만들므로 다른 방법을 사용하여 클릭 이벤트를 첨부해야합니다. 아래와 같이 테이블 자체에 첨부 된 "ON"방법을 사용해보십시오. 이것은 DOM이로드 된 후 테이블에 추가 된 모든 TD에 적용됩니다.

$("#tabel_notificari").on("click", ".rand_notif td:lt(2)", function(e) { 
    $(this).html("asd"); 
}); 
1

이 당신의 HTML에는 TD 태그가 없습니다. TH라고 했니?

+2

두 번째 js 코드 조각을 봅니다. jquery와 함께 추가합니다. –

관련 문제