我有动态HTML内容
<div id="parent">
<div class="child">
Hover Text
</div>
</div>
当我尝试使用此代码将“悬停文本”悬停在子元素内时,它不起作用。
$("#parent").on('hover', '.child', function()
{
alert("Hello");
});
此代码
$('#parent').on('hover', '.child', function(e) {
...
});
我使用jq vs 1.10.2
答案 0 :(得分:3)
如果动态生成整个div#parent
块,您可能需要将hover
侦听器绑定到文档本身,如下所示。
另外,我建议使用mouseenter
和mouseleave
个侦听器,因为jQuery 1.9中删除了hover
简写。
在jQuery 1.8中不推荐使用,在1.9中删除:名称“hover”用作 字符串“mouseenter mouseleave”的简写。
这是我的样本:
jQuery(document).on('mouseenter', '#parent .child', function (e) {
jQuery(this).css('backgroundColor','#F00');
}).on('mouseleave', '#parent .child', function (e) {
jQuery(this).css('backgroundColor','#FFF');
});
答案 1 :(得分:0)
尝试使用mouseenter
添加mouseleave
和on()
个事件。
这是一个例子:
$(function(){
$("#parent").on({
mouseenter : function(e){
alert("Mouse enter");
},
mouseleave : function(e){
alert("Mouse leave");
}
}, ".child");
});
答案 2 :(得分:0)
您可以使用.hover()
方法为mouseenter和mouseleave事件绑定处理程序。您可以使用它在鼠标位于元素中时简单地将行为应用于元素。
$(document).ready(function(){
$('#parent .child').hover(function(){
alert("Hello");
});
});
您还可以使用.mouseover()
事件。
$(document).on('mouseover', '#parent .child', function(){
alert("Hello");
});
Try mouseover event handler fiddle
但是,最佳做法是使用事件委派绑定mouseenter
和mouseleave
事件。
$(document).ready(function(){
$('#parent').on({
mouseenter: function() {
alert('Hello');
},
mouseleave: function() {
alert('bye..!!!');
}
}, ".child");
});