使用一个监听器而不是数百个

时间:2015-07-05 20:50:16

标签: javascript javascript-events mouselistener

现在我有了这个,它有效:

$(document).on('mouseenter', 'td', mouseEnter)
function mouseEnter() {
}

但我认为这会将事件监听器附加到每个表格单元格。

问:我怎么写它才能使用1个监听器?

2 个答案:

答案 0 :(得分:2)

这是一个倾听者。此代码将附加到每个表格单元格:

$("td").on("mouseenter", function(e) {
    //do stuff
});

您的代码是正确的。实际上,会发生的事情是mouseenter事件通过DOM“冒泡”直到它的顶部,即“文档”。当它到达那里时,你的代码会检查事件的来源,并且只有当它是TD元素时才会触发。

这一点特别好,因为即使您在文档中添加了新的TD,它仍然适用 - 这个监听器将在不需要再执行“on”的情况下接收mouseenter事件。

答案 1 :(得分:1)

您可以使用mouseover event并将其附加到您的表格中,但不会将其附加到单元格中,因此每当您输入表格的任何单元格时,都会触发此事件