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列表的意思----