$(function(){
$('.div4table tr td.trigger').each(function(){
this.click(function(){
$('#toggle'+index).toggle();
});
});
});
这一块代码难道有问题么,怎么绑定不上点击事件啊?求找bug。。
下面是相关的一块代码
<div class="div4table">
<tr>
<td>#agent_ip#</td>
<td>#ip#/#type#</td>
<td>#tcp_max#/#tcp_min#/#tcp_avg#</td>
<td>#tcp_lost#/#tcp_send#</td>
<td>#icmp_max#/#icmp_min#/#icmp_avg#</td>
<td> #icmp_lost#/#icmp_send#</td>
<td class="trigger">查看/收起</td>
</tr>
<tr id="toggle#i#"><td colspan="7"><div>这个地方要展示的是影藏起来了的其他的信息</div></td></tr>
</div>
补充一下问题我的表格是循环生成的,我会产生许多类名为trigger的TD,而我想每一个对应绑定下面动态生成ID的
$('.div4table tr td.trigger').each(function(){
this.click(function(){
$('#toggle'+index).toggle();
});
});
});
1)index变量在哪里?
2)this是一个DOM对象,而不是jquery对象
DOM对象也有click方法,但是出入回调函数没有效果
3)上面的代码为没有个td.trigger绑定了一个回调,当多行多列td.trigger时,不是好的写法
修改如下:
//使用事件代理机制 利用事件冒泡,使用div.div4table代理发生在td.trigger上的click事件
$('.div4table').on("click","tr td.trigger",function(){
//为你的td.trigger 添加一个自有属性,记录td的index值,这样不用再去计算
var index=$(this).attr("td-index");
$('#toggle'+index).toggle();
});
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。