Javascript 将鼠标悬停更改为单击菜单

Javascript 将鼠标悬停更改为单击菜单,javascript,jquery,html,css,user-interface,Javascript,Jquery,Html,Css,User Interface,我在更改“单击”而不是“悬停”时调用的函数时遇到问题。我尝试过将“悬停”更改为“单击”以及“切换”,但没有任何积极的结果 $('#menu li').hover( function(){ $(this).stop().animate({height: '100px'},1000,function(){}); $(this).find('div').show(600); } , function(){

我在更改“单击”而不是“悬停”时调用的函数时遇到问题。我尝试过将“悬停”更改为“单击”以及“切换”,但没有任何积极的结果

$('#menu li').hover(
    function(){
            $(this).stop().animate({height: '100px'},1000,function(){});
            $(this).find('div').show(600);
        }
    ,
    function(){
            $(this).stop().animate({height: '20px'},1000,function(){});
        } 
  ); 
如果要将事件更改为“单击”,是否必须绑定该事件?非常感谢您的帮助


这里是小提琴:

您正在将两个参数传递给
$(…)。单击(单击手柄)
。只需传递一个函数

检查

在两个论点中

http://api.jquery.com/click/

您正在将两个参数传递给
$(…)。请单击(单击句柄)
。只需传递一个函数

检查

在两个论点中

http://api.jquery.com/click/
只需要一个参数,当我改变了,一切正常

只需要一个参数,当我改变所有参数时,一切正常

试试这个:

设置一个变量以跟踪单击的状态

尝试以下操作:

设置一个变量以跟踪单击的状态

hover()
接受两次回调,一次用于
mouseenter
,另一次用于
mouseleave
。如果要将其更改为“单击”,并且第一次单击将启动第一个动画,第二次单击将启动第二个动画,则需要添加状态变量以确定元素是否已单击一次或两次

$('#menu li').click(
function(){
        if(this.clicked)
        {
         //callback 1
        }
        else
       {
        //callback 2
       }
       this.clicked = !this.clicked;
    } 
))

hover()
接受两次回调,一次用于
mouseenter
,另一次用于
mouseleave
。如果要将其更改为“单击”,并且第一次单击将启动第一个动画,第二次单击将启动第二个动画,则需要添加状态变量以确定元素是否已单击一次或两次

$('#menu li').click(
function(){
        if(this.clicked)
        {
         //callback 1
        }
        else
       {
        //callback 2
       }
       this.clicked = !this.clicked;
    } 

))

我不知道我是否理解,我是否需要去掉这两个匿名函数中的一个,并将animate更改为toggle?您希望发生什么?我想PAPARFRESH的答案就是你想要的。我不确定我是否理解,我是否需要去掉这两个匿名函数中的一个,然后将animate更改为toggle?你希望发生什么?我想PAPARFRESH的答案就是你想要的。如果我想让菜单比按钮宽,那怎么办?你必须添加更多样式,专门针对按钮宽度和向下滑动的项目宽度。。或者它可能涉及设置嵌套ul列表的菜单。。。通常,菜单由嵌套的ul列表组成,以创建水平或垂直菜单menus@m_p--为了时间起见,这里有一个很好的图坦卡门来理解我所说的嵌套ul列表的意思----如果我想让菜单比按钮宽,那该怎么办?你必须添加更多的样式,专门针对按钮宽度和向下滑动的项目宽度。。或者它可能涉及设置嵌套ul列表的菜单。。。通常,菜单由嵌套的ul列表组成,以创建水平或垂直菜单menus@m_p--看在时间的份上,这里有一个很好的图坦卡门,可以理解我所说的嵌套ul列表的意思----