更改悬停以单击菜单

时间:2013-10-11 18:31:30

标签: javascript jquery html css user-interface

我无法更改要在'click'上调用的函数而不是'hover'。我已经尝试将“悬停”更改为“点击”以及“切换”而没有正面结果

$('#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://jsfiddle.net/GANeX/7/

4 个答案:

答案 0 :(得分:2)

试试这个:

http://jsfiddle.net/GANeX/52/

var clicked = 0;
$('#menu li').click(
   function(){
        if(clicked === 0){
            $(this).stop().animate({height: '100px'},1000,function(){});
            $(this).find('div').show(600);
            clicked = 1;
        } else if(clicked === 1){
            $(this).stop().animate({height: '20px'},1000,function(){});  
            clicked = 0;
        }
    }
 );

设置变量以跟踪点击状态

答案 1 :(得分:1)

您将两个参数传递给$(...).click(clickHandle)。只需传递一个功能。

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

在两个论证案例中,

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

答案 2 :(得分:1)

当我改变一切正常时,

click 只需要一个参数。

答案 3 :(得分:1)

hover()需要两次回调,一次针对mouseenter,另一次针对mouseleave。如果要将其更改为单击,并且第一次单击开始第一个动画,第二个单击开始第二个动画,则需要添加一个状态变量以确定您的元素是否被单击过一次。

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

);