我有一个功能可以动态修改tbody。 所以我需要在1.7.1中使用类似的东西:
$("table#id").on('click', 'tr', callback);
现在我需要退出此事件,触发第一个和最后一个td。
所以我做了类似的事情:
$("table#id").on('click', 'td:not(:first, :last)', callback);
但这不起作用。 我也尝试过.live(),但我没有得到任何结果。
谢谢!
答案 0 :(得分:0)
:first和:last匹配jQuery对象中的第一个和最后一个元素 。由于您使用的是on()
,因此将在包含单个元素(事件目标)的jQuery对象的上下文中评估该选择器。因此,该元素永远不会匹配,因为它既是集合中的第一个也是最后一个项目。
对比:first-child和:last-child,与父元素中的第一个和最后一个元素匹配。使用它们可以解决您的问题:
$("#id").on("click", "td:not(:first-child, :last-child)", callback);
答案 1 :(得分:0)
您希望:first-child
和:last-child
选择器 - :first
和:last
是最后匹配的元素:
$('table').on('click', 'td:not(:first-child, :last-child)', function() {
alert('hi');
});
答案 2 :(得分:0)
使用first-child
和last-child
选择器
请参阅jsFiddle。