0
모든 테이블 데이터에서 클릭 이벤트를 생성하려고합니다. <td>
을 제외한 <TD>
을 제외하고는 나머지는 아니고 첫 번째 행과 함께 작동합니다.jQuery .on() 이벤트가 작동하지 않는 경우 : lt() selector
HTML :
<table class="table" style="width:100%;">
<tbody>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
</tbody>
</table>
JS 코드 :
$('.table tbody').on('click', 'tr td:lt(3)', function(){
// Trying to check the click event
console.log('working');
});
JSFIDDLE
나는 그 작업을 잘 다음 :lt(3)
선택을 제거하지만 난 그렇게하지 않으면 알다 왜 덜 선택기와 함께 작동하지 않는 이유는 무엇입니까?
@kayen 아니요 작동하지 않으므로 두 번째 또는 세 번째 행을 클릭하십시오. –
이것은 재미있는 읽을 거리입니다 : http://stackoverflow.com/questions/1137182/chaining-jquery-selectors-lt-and-gt – kayen
IMHO,''td's에 특정'class'를 추가하는 것이 좋습니다. 당신은 신원을 밝히고 싶어합니다. '
답변
음이이 TR (1)에 적용 할 :lt() selector의 작동 방식은 다음과 같습니다.
경우에 따라
tr td
이 16 개의 셀과 일치하며 그 다음 결과 집합의 처음 3 개 요소가 필터링됩니다. 이 같은 코드를 수정할 수 :n 번째 자식 선택기 explained here입니다 :
또는 더 나은, also available in jQuery 인 CSS3 :nth-child() 선택기를 사용합니다.
출처
2013-08-22 08:20:51
당신은 또한, 모든 TBODY의 처음 3 TD, 아니라 각 행의 하나를 수행 할 수없는 경우
가 (당신이 5 코드를 시도하는 대신 3 수 할 수 에게 무슨 참조 : TD 1 TD 2 TD 3 TD 4 TR2 : TD 1 (TBODY의 제 5 TD)
jsfiddle
출처
2013-08-22 08:13:04
동적으로 추가 된 tr에는이 기능이 작동하지 않을 수 있습니다. –
관련 문제