jquery onclick事件不在td上工作

时间:2013-11-15 04:56:44

标签: dom jquery

当我点击td上课toggle时,我正试图触发一个事件。当我点击课程toggle的td时,我想要显示所有下一个tr的课程hidethis

但我似乎无法触发td上的事件。这是我到目前为止所得到的。

<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js">  </script>
<script type="text/javascript">
$(document).ready(function () {

$(' td .toggle ').on('click',function(ev){


$(this).closest('tr').nextAll('tr .hidethis').show();


});

});

</script>
</head>
<body>



<table border="1">
<tr >
<td class="toggle">First Toggle</td>
</tr>
<tr class = "hidethis" style="display:none">
<td>Value 1</td>
<td>Value 2 </td>
<td>Value 3</td>
</tr>
<tr >
<td class="toggle">Second Toggle</td>
</tr>
<tr class = "hidethis" style="display:none">
<td>Value 4</td>
<td>Value 5 </td>
<td>Value 6</td>
</tr>
</table>

</body>
</html>

问题是当我点击td上的课程toggle时,事件未触发。 请帮我。可能是我没有看到明显的东西。 提前致谢。

3 个答案:

答案 0 :(得分:1)

删除选择器之间的空格it has a specific meaning

  

选择作为给定祖先后代的所有元素。

应该是:

$('td.toggle')

答案 1 :(得分:1)

删除td和切换之间的空格

$(' td .toggle ').on('click',function(ev){

$('td.toggle').on('click',function(ev){
    ^

以及您的以下代码也存在同样的问题: -

$(this).closest('tr').nextAll('tr .hidethis').show();

 $(this).closest('tr').nextAll('tr.hidethis').show();
                                  ^

Working Demo

答案 2 :(得分:1)

只需尝试

$(document).ready(function () {
    $('.toggle').on('click',function(ev){
       $(this).closest('tr').nextAll('tr .hidethis').show();
    });
});

或删除td及其classname

之间的空格
$('td.toggle').on('click',function(ev){