我创建了一个脚本,用于在鼠标悬停时显示div。
<script type="text/javascript">
$(document).ready(function() {
$("a.prikaziDiv").hover(
function() {
var $sibling = $(this).siblings('div.prikazano').show(); // get the sibling div and show it
$('div.prikazano').not($sibling).hide(); // hide the other divs
}, function() {
$(this).siblings('div.prikazano').delay(999).fadeOut(0);; // get the sibling div and hide it after .333 seconds
});
});
</script>
<a class="prikaziDiv" href="#">SHOW</a><div class="prikazano" style="display:none;">aa</div>它可以工作,但是当我悬停在"SHOW“链接时,我把光标放在div上,但是它消失了。我不想消失。
有人能帮我吗?
谢谢!
发布于 2013-02-07 07:30:21
当您悬停锚点时,div会出现,当您悬停div时,它会消失,因为您不再将鼠标悬停在锚点上,因此会触发hover()的mouseleave部分。您可以将div放在锚点中,也可以使用超时,如下所示:
$(document).ready(function () {
var timer;
$("a.prikaziDiv").on({
mouseenter: function() {
var $sibling = $(this).siblings('div.prikazano').show();
$('div.prikazano').not($sibling).hide();
},
mouseleave: function() {
var self = this;
timer = setTimeout(function() {
$(self).siblings('div.prikazano').fadeOut(1);
}, 999);
}
});
$('div.prikazano').on({
mouseenter: function() {
clearTimeout(timer);
},
mouseleave: function() {
$(this).delay(999).fadeOut(1);
}
})
});发布于 2013-02-07 03:06:09
使用mosueenter而不是hover。
http://jsfiddle.net/kkobold/y8hb9/
https://stackoverflow.com/questions/14740755
复制相似问题