[英]jQuery click event on td row not firing
我有一个简单的jQuery,如果选中,它会显示当前一行下面的行。
我想要的是所有的<td>
元素,但是要触发这个方法。
适用于整个<tr>
行
$(document).ready(function(){
$("#report > tbody > tr.odd").click(function(){
$(this).next("#report tr").fadeToggle(600);
});
});
想做点什么(不起作用)
$(document).ready(function(){
$("#report > tbody > tr.odd > td.selected").click(function(){
$(this).next("#report tr").fadeToggle(600);
});
});
在你的非工作代码中, $(this)
是一个<td>
元素。
因此, $(this).next("#report tr")
与任何内容都不匹配。 (因为<td>
元素没有<tr>
元素作为兄弟姐妹)
您需要将其更改为$(this).closest('tr').next("#report tr")
以查找“uncle”元素。 你也可以调用.parent()
而不是.closest('tr')
,但是即使你将click
处理程序绑定到<td>
的子.closest
,调用.closest
也会继续工作。
你需要这样的东西:
$(document).ready(function(){
$("#report tr:not(.odd)").hide();
$("#report tr:first-child").show();
$("#report > tbody > tr.odd > td.selected").click(function(){
$(this).closest("tr").next("tr").fadeToggle(600);
});
});
由于您单击了某个td,因此在尝试获取下一行之前需要前往该行。 此选择器在大多数情况下也应该相同: #report td.selected
。 因为你无法逃脱与兄弟一起进入#report
, #report tr
也可以只是你的next()
tr
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.