我正在尝试制作一个可以崩溃的菜单:
我无法做到这一点,这是我的代码:
$(function() {
$('#arrow').bind('mouseenter', function(){
if($('#hoofdmenu').attr("class") == "show"){
$('#hoofdmenu').addClass("class", "mousehide");
$('#hoofdmenu').hide();
}
else
{
$('#hoofdmenu').removeClass("class", "mousehide");
$('#hoofdmenu').addClass("class", "mouseshow");
$('#hoofdmenu').show();
}
});
$('#arrow').bind('click',function(){
if ($('#hoofdmenu').attr("class") == "show"){
$('#hoofdmenu').attr("class", "hide");
$('#hoofdmenu').hide();
}
else
{
$('#hoofdmenu').attr("class", "show");
$('#hoofdmenu').show();
}
});
});
有人可以帮我解决这个问题吗? 亲切的问候, 弗兰克
答案 0 :(得分:2)
为什么要为此添加特殊类?您可以使用hide()和show()函数进行点击,使用mouseOver()和mouseOut()函数进行鼠标悬停。
编辑:出于某种原因,我无法加载jquery.com来指出正确的页面
答案 1 :(得分:0)
使用attr()和类很多很慢,因为每次都会发出DOM重排。此外,请确保缓存元素。我们可以加快速度:
$(function(){
var menu = $('#menu'),
arrow = $('#arrow'),
isOpen = false;
arrow.hover(function(){
if(isOpen) return;
if(menu.is(':visible'))
menu.hide();
else
menu.show();
});
arrow.click(function(){
if(isOpen)
menu.hide();
else
menu.show();
isOpen = !isOpen; // shift bool
});
});