繁体   English   中英

jQuery .on()不绑定事件处理程序

[英]jQuery .on() not binding event-handler

我正在尝试将事件处理程序附加到动态更改表中的每一行但没有成功(使用jQuery版本1.11.0)*编辑:正如许多人所指出的那样,' hover '已被删除,但我的问题也存在于其他处理人员*

$('#tableBody tbody').on('hover', 'tr', function() {
    alert('hovering on a row');
});

上面的代码与jQuery文档 - http://api.jquery.com/on/完全相同,我尝试过其他变体,比如

$(document).on('hover', '.tableRow', function(){...});

事件处理程序就是没有添加。 我应该注意,表的内容是通过AJAX检索然后显示的,这就是我使用.on()方法的原因。

不再支持将'hover'作为字符串传递给.on() (在.on()文档中的“Additional Notes”中提到的v1.9中删除)。 相当于使用'mouseenter mouseleave' ,或者如果你只想在鼠标进入相关元素时做某事,请尝试:

$('#tableBody tbody').on('mouseenter', 'tr', function() {

请注意, #tableBody元素在运行时需要存在,因此您需要将其包含在文档就绪处理程序或正文末尾的脚本元素中。

并且'tableBody'听起来像是分配给<tbody>元素,当你的选择器还包含tbody作为#tableBody的子元素时,这是没有意义的。

'mouseenter'事件应该可以正常工作。

$('#myTable tbody').on('mouseenter', 'tr', function() {
    alert('hovering on a row');
});

这是jsfiddle

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM