Jquery菜单无法单击

时间:2014-06-26 10:52:55

标签: javascript jquery

我可以让我的菜单在悬停时工作,但是当我使用mousedown时它不起作用:

http://codepen.io/anon/pen/Krflq

$(document).ready(function () { 

    $('#nav li').mousedown(
        function () {
            $('ul', this).stop().slideDown(100);

        }, 
        function () {
            //hide its submenu
            $('ul', this).stop().slideUp(100);          
        }
    );

});

有人能告诉我哪里出错了吗?我希望当我点击顶层并保持打开状态时打开菜单。

5 个答案:

答案 0 :(得分:1)

mousedown事件中不能有两个函数,因此请单独使用它们。 mousedownmouseleave

答案 1 :(得分:1)

检查一下:

 $(document).ready(function () {    

$('#nav li').mousedown(
    function () {
        $('ul', this).stop().slideDown(100);

    }

).mouseleave(
 function () {
        $('ul', this).stop().slideUp(100);  
    }
);      
});

答案 2 :(得分:1)

我会使用click()slideToggle()。试试这个:

$(document).ready(function () { 
    $( "#nav li" ).click(function() {
  $('ul', this).stop().slideToggle(100);
});

});

此外,您必须申报理想的功能。我们现在所做的一切都是现在的

DEMO

答案 3 :(得分:1)

使用Toggle事件

$(document).ready(function () { 

    $('#nav li').mousedown(function(){

        $('ul #items').toggle(1000);

    });

});

http://jsfiddle.net/u5brv/

答案 4 :(得分:0)

我相信你应该使用悬停而不是mousedown

$('#nav li').hover(
        function () {
            $('ul', this).stop().slideDown(100);

        }, 
        function () {
            //hide its submenu
            $('ul', this).stop().slideUp(100);          
        }
    );

DEMO