jquery鼠标是否正确执行?
我有一个导航菜单,菜单“hotels”中有一个向下滑动的面板。 以下是脚本:jquery鼠标是否正确执行?,jquery,mouseover,Jquery,Mouseover,我有一个导航菜单,菜单“hotels”中有一个向下滑动的面板。 以下是脚本: $(document).ready(function(){ $(".HotelPaneltrigger").mouseenter(function(){ $(".panel").slideDown("slow"); //$(this).toggleClass("active"); return false; }); $(".panel").mouselea
$(document).ready(function(){
$(".HotelPaneltrigger").mouseenter(function(){
$(".panel").slideDown("slow");
//$(this).toggleClass("active"); return false;
});
$(".panel").mouseleave(function(){
$(this).slideUp("slow");
});
});
现在,我有两个问题:
.HotelPaneltrigger触发面板(.panel)向下滑动
鼠标一离开.panel区域,面板就会向上滑动
第一个问题:在我的“HotelPaneltrigger”和“.panel”之间悬停会导致面板上下滑动多次,因为只要用户在两个元素之间悬停,就会执行这两个功能
第二个问题:面板定义为用户离开“.panel”区域后立即向上滑动
您推荐什么解决方案:
在“HotelPaneltrigger”上向下滑动面板,并在用户处于“HotelPaneltrigger”+“.panel”区域时保持打开状态。。在远离它们时关闭
我需要避免面板多次上下滑动,当用户离开触发链接时关闭面板。。。不是。面板区域
谢谢你的意见
我使用的菜单代码:
<ul class="primary_nav">
<li class="active"><a href="link to.php" class="hoverBtn">Link 1</a></li>
<li class="HotelPaneltrigger"><a href="#" class="hoverBtn">Hotels</a></li>
<li><a href="#" class="hoverBtn">Link 3</a>
<ul class="subnav">
<li><a href="link to.php">Link 4</a></li>
<li><a href="link to.php">Link 5</a></li>
</ul>
</li>
<li><a href="#" class="hoverBtn">Link 6</a>
<ul class="subnav">
<li><a href="link to.php">Sub 1</a></li>
<li><a href="link to.php">Sub 2</a></li>
<li><a href="link to.php">Sub 3</a></li>
</ul>
</li>
<li class="last"><a href="link to.php" class="hoverBtn">Specials</a></li>
</ul>
-
-
工作示例:
基本上,因为它是一个菜单,所以您将面板放在触发器内,并将两个事件处理程序都放在触发器上。因为面板是一个孩子,所以即使鼠标在面板上,您仍然可以在TIRGER上“输入”
$('.HotelPaneltrigger').hover(
function () {
// Show hidden content IF it is not already showing
if($('.panel').css('display') == 'none') {
$('.panel').slideDown('slow');
}
},
function () {
// Do nothing when mouse leaves HotelPaneltrigger
$.noop();
}
);
$('.panel').mouseleave(function () {
$(this).delay('500').slideUp('slow');
});
如果不能完全正常工作,您也可以尝试使用hoverIntent插件-是否可以为此创建一个JSFIDLE?我很难想象你所描述的问题。这正是我需要的。prodigitalson:-)但仍然很困惑,因为我有一个菜单脚本,其中嵌入了我的hotels链接。请参见上文,它尝试在我现有的导航菜单中的下实现,但面板不会显示。将再次检查是否是css问题,很可能是。在这种情况下,您实际上希望触发器元素是
li
而不是a
。如果你当时还没有弄明白,我会在有时间的时候尝试修改小提琴:-)我做了一个小提琴来测试我的跑步导航菜单,包括你的功能。函数冲突或。。是我:-)以下是示例:好吧,你不会相信问题是什么:我使用了你的class=“hotelPanelTrigger”,这与我的calss=“hotelPanelTrigger”不同。。。那是因为面板没有被触发。现在,您的解决方案就像一个符咒:-)…如何在面板关闭后延迟扩展功能,以避免再次出现多次上下效应?您的解决方案使它更接近,延迟有助于防止多次触发。。但只有当鼠标离开面板时,面板才会关闭。请尝试hoverIntent插件,添加该插件,然后将.hover函数更改为.hoverIntent