我在一个页面上有多个下面的HTML元素
<a href='#' class='note-links'>
<div class='notes'>
<div class='course_title'><b>{$course_title}</b></div>
<img src='images/download_file.jpg' class='file' />
<div class='course_code'>{$course_code}</div>
<div class='level'>{$course_level} Level</div>
<div class='price' class='notice'>₦ {$price}</div>
<div class='opt'><br />
<a href='' class='edit' id='{$id}'>Edit</a> .
<a href='' class='delete' id='{$id}'>Delete</a>
</div>
</div>
</a>带有class opt的div处于隐藏状态。我希望悬停在锚标签上,使隐藏的div只对悬停的锚标签可见。我使用了下面的jQuery代码
$('#menu-display').on('hover', '.note-links', function() {
$(this).find('.opt').css('visibility', 'visible');
});当我将鼠标悬停在锚标签上时,什么也没有显示。但是,如果我删除.find(),隐藏的div会显示出来,但其他所有锚标记都不会悬停。
为什么会发生这种情况,我该如何修复它?
发布于 2013-05-23 07:34:20
不能对on方法使用hover事件:
在jQuery 1.8中弃用悬停,在1.9中删除:用作字符串"mouseenter mouseleave"的缩写的名称“
”。它为这两个事件附加了一个事件处理程序,该处理程序必须检查
event.type以确定事件是mouseenter还是mouseleave。不要将"hover“伪事件名与接受一个或两个函数的.hover()方法混淆。
$('#menu-display').on({
mouseenter: function() {
$(this).find('.opt').css('visibility', 'visible');
},
mouseleave: function() {
$(this).find('.opt').css('visibility', 'hidden');
}
}, '.note-links');https://stackoverflow.com/questions/16703207
复制相似问题