下拉选项聚焦时调用Slidetoggle

时间:2012-07-23 19:07:21

标签: jquery

http://jsfiddle.net/EhTJF/

Linked是我遇到的问题的一个例子。 当元素悬停时,调用slidetoggle()以显示下拉列表。尝试在ddl中选择一个选项时,再次调用slidetoggle()并强制ddl和切换元素折叠。

我对错误做什么的想法?

*编辑

缩进功能是允许用户从下拉列表中选择一个选项,然后允许该元素自动切换。

2 个答案:

答案 0 :(得分:0)

hover()方法有2个签名。第一个参数需要2个参数:一个用于鼠标进入元素时调用的函数,另一个用于退出时调用的函数。第二个签名只接受一个为进入和退出事件调用的函数。在您当前的示例中,您对hover enter和hover exit使用相同的功能;这就是隐藏下拉元素的原因。

http://api.jquery.com/hover/

如果您希望第一个悬停后下拉列表保持打开状态,我会有此示例:

http://jsfiddle.net/gwZbj/4/

答案 1 :(得分:0)

这有点复杂,但也许是这样的:

$(document).ready(function () {
    var timer;
    $('.dropdown').on({
        mouseenter: function () {
            var elm = $(this).find('.sub_navigation');
            if (!elm.is(':visible')) {
                elm.slideDown(100);
            }else{
                clearTimeout(timer);
            }
        },
        mouseleave: function() {
            var elm = $(this).find('.sub_navigation');
            timer = setTimeout(function() {
                elm.slideUp(100);
            }, 300);
        }
    });
});​

FIDDLE