jQuery委托表行选择器

时间:2010-05-31 08:04:48

标签: jquery delegates html-table

我有一个表可能包含其他内部表(无法编辑生成的标记)。我想为row mouseenter和mouseleave创建一个委托函数,它只触发关联的主表行(而不是内表行),如下所示:

  $("#tableid").delegate("tr", "mouseenter mouseleave", function(e) {
    //do stuff here
  });

但是使用这个选择器它还会选择内部表行,那么如何修改选择器以避免选择内部表行?

1 个答案:

答案 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