我使用jquery在一些下拉菜单上找到了一个教程。它工作正常,但我想稍微调整一下。我没有使用悬停隐藏菜单,而是想要显示菜单的相同按钮,以便在再次按下时隐藏它。因此,相同的按钮必须隐藏并显示下拉菜单。 我使用的脚本:
$(document).ready(function () {
$("ul.subnav").parent().append("<span></span>"); //Only shows drop down trigger when js is enabled - Adds empty span tag after ul.subnav
$("ul.topnav li span").click(function () { //When trigger is clicked...
//Following events are applied to the subnav itself (moving subnav up and down)
$(this).parent().find("ul.subnav").slideDown('fast').show(); //Drop down the subnav on click
$(this).parent().hover(function () {
}, function () {
$(this).parent().find("ul.subnav").slideUp('slow'); //When the mouse hovers out of the subnav, move it back up
});
//Following events are applied to the trigger (Hover events for the trigger)
}).hover(function () {
$(this).addClass("subhover"); //On hover over, add class "subhover"
}, function () { //On Hover Out
$(this).removeClass("subhover"); //On hover out, remove class "subhover"
});
});
答案 0 :(得分:4)
使用jQuery的.toggle()
http://api.jquery.com/toggle/
$("#yourbutton").click(function() {
$("#yourmenu").toggle();
});
答案 1 :(得分:1)
使用jQuery的.toggle
方法可以避免添加CSS规则。
$('#yourMenu').toggle()
这将隐藏它,如果它是可见的,并显示它是否隐藏。您可以添加一个数字或'fast', 'slow'
作为参数,以使其具有动画效果。
答案 2 :(得分:1)
jQuery.toggle()函数将为您完成这项工作:
$("#button").on('click', function() {
$("#menu").toggle();
});
答案 3 :(得分:1)
是的,可以使用toggleClass。或者您也可以在javascript中定义自己的切换功能。 您可以在类之间切换或执行您想要的任何其他功能。
function tog(elemen){
if(elemen.className == "show") {
hide drpdwn
elemen.className="hide";
} else {
make dropdwn visible
elemen.className="show";
}
}