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

Using one listener instead of hundreds

现在我有这个,而且有效:

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

但我认为这是将事件侦听器附加到每个 table 单元格。

问:如何编写才能使其只使用一个侦听器?

那是一个听众。此代码将附加到每个 table 个单元格:

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

您的代码是正确的。实际上,mouseenter 事件 "bubbles" 通过 DOM 直到它的顶部,即 "document"。当它到达那里时,您的代码会检查事件的来源,并且仅当它是 TD 元素时才会触发。

这特别好,因为它仍然适用,即使您将新的 TD 添加到文档中 - 此侦听器将拾取 mouseenter 事件,而无需您再执行一次 "on"。

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