我有一个表可能包含其他内部表(无法编辑生成的标记)。我想为row mouseenter和mouseleave创建一个委托函数,它只触发关联的主表行(而不是内表行),如下所示:
$("#tableid").delegate("tr", "mouseenter mouseleave", function(e) {
//do stuff here
});
但是使用这个选择器它还会选择内部表行,那么如何修改选择器以避免选择内部表行?
答案 0 :(得分:2)
您可以将.delegate()
与稍微不同的选择器一起使用,如下所示:
$("#tableid").delegate("#tableid > tbody> tr", "mouseenter mouseleave", function(e) {
//do stuff, for example $(this).toggleClass("hover");
});
这是有效的,因为您希望<tr>
元素是直接子行,但是您需要考虑的是<tbody>
。 You can test a working demo here