javascript - JQuery下拉,悬停在下拉时保持向下

标签 javascript jquery html drop-down-menu

我设置了一个完美的 jquery 下拉菜单。当用户滚动链接时,它会下降。问题在于,当用户滑过下拉菜单的内容区域时,它会向上滑动。我需要设置代码,以便当用户的光标仍在其上时,滑动框保持在向下位置。

这是我的 HTML:

<ul id="tabnav"> 
<li class="tab2"><a href="index2.html" class="btn-slide">My Leases</a></li> 
</ul>   

<div id="leases"> 
<!-- slide down content here --> 
</div>

JS 触发器:

<script type="text/javascript"> 
$(document).ready(function(){
  $(".btn-slide").hover(function(){
    $("#leases").slideToggle("medium");
    $(this).toggleClass("active"); 
    return false;
  });
});
</script>

有什么想法吗?

编辑:这是指向相关页面的链接:http://designvillain.com/testbed/600/601.html

最佳答案

我不确定这是否是您想要的,但我会把它放在这里。它在向上滑动 #leases 之前等待 500 毫秒,并且仅在适当的时候

var isMousedOver;

var hideDropdown = function(a) {
        setTimeout( function() {
            if (isMousedOver) return;
            $("#leases").slideUp("medium");
            $(a).removeClass("active");
        }, 500);
}

$(".btn-slide").hover(
    function(){
        $("#leases").stop(true,true).slideDown("medium");
        isMousedOver = true;
        $(".btn-slide").removeClass("active");
        $(this).addClass("active");
        var that = this;
        $("#leases").data("mouseoutfn", function() { hideDropdown(that) });
    },
    function(){
        isMousedOver = false;
        hideDropdown(this);
    }
);

$("#leases").hover(
    function() {
        isMousedOver = true;
    },
    function() {
        isMousedOver = false;
        $(this).data("mouseoutfn")();
    }
);

这是一个演示:http://jsfiddle.net/mMRZc/

关于javascript - JQuery下拉,悬停在下拉时保持向下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3256835/

相关文章:

javascript - Shadow-root 兄弟元素在 attachShadow() 调用时消失

单击日期时 jQueryUI DatePicker 12 个月 View 'jumps'

javascript - 如何检测Chrome默认搜索引擎

html - 左右边距不一样

css - 为什么我的 <ul> 不是从我的 <div> 继承的?

javascript - 使用包含英国格式日期的字符串设置 new Date()

javascript - 如何撤消 $( "button").remove()?

html - 宽度相同但在表格中显示不同

javascript - 来自其他文件的 Vue 中方法的 mixin

javascript - 通过单击 html 中的特定按钮转到特定选项卡