编程语言
首页 > 编程语言> > javascript – jQuery事件冒泡:获取原始元素mouseover(用于表行突出显示)

javascript – jQuery事件冒泡:获取原始元素mouseover(用于表行突出显示)

作者:互联网

我正在尝试减少我的表中的’onmouseover’事件监听器(我在其中突出显示悬停时的行).我想通过将事件监听器附加到整个表而不是每个< tr>来实现这一点. (这就是我现在的方式).原因是IE反应非常缓慢,我发现的唯一答案是减少事件监听器的数量.

示例代码:

<table id="myTable">
   <tr>
     <td>Somedata</td>
   </tr>
   <tr>
     <td>Somedata 2</td>
   </tr>
   <tr>
     <td>Somedata 3</td>
   </tr>       
</table>

在这种情况下,如果我将鼠标悬停在第二个< tr>上,我就会明白“onmouseover”事件会从tr冒泡到表中.

我怎么能在我的jQuery $(‘#myTable’).mouseover事件中发现tr被徘徊并改变它的css类?

编辑:这个想法来自这个问题(但遗憾的是答案中没有源代码):Speeding Up Multiple onm ouseOver Events in IE

解决方法:

它被称为event delegation.

你正在使用jQuery,这使得找到触发器< tr>成为微不足道的事情.活动的元素,通过closest

$('#myTable').mouseover(function(event) {
    var tr = $(event.target).closest('tr');
    // do something with the <tr> element...
})

事实上,最接近的是支持这样的事件委托.这就是live()内部使用的内容.

标签:jquery,javascript,css,event-bubbling
来源: https://codeday.me/bug/20190610/1214453.html