我正在学习jQuery,我想看看我能用下面的函数做些什么。此函数添加或删除css类以创建下拉菜单(实际上是Stu Nicholl的众所周知的下拉菜单)。但是我没有走得太远(我现在一直在学习jQuery,所以我的DOM遍历还不是很好)。我很想知道使用jQuery会变得多么优雅和优雅,我想我会看到你们能想出的东西。这是现有的功能:
var getEls = document.getElementById("menu").getElementsByTagName("LI");
var getAgn = getEls;
for (var i=0; i<getEls.length; i++) {
getEls[i].onclick=function() {
for (var x=0; x<getAgn.length; x++) {
getAgn[x].className=getAgn[x].className.replace("unclick", "");
getAgn[x].className=getAgn[x].className.replace("click", "unclick");
}
if ((this.className.indexOf('unclick'))!=-1) {
this.className=this.className.replace("unclick", "");;
}
else {
this.className+=" click";
}
}
}
}
我的第一次失败是这样开始的:
$(document).ready(function() {
$('#menu > li').click(function() {
$('#menu >li > ul').toggleClass('unclick');
});
});
尽管它可行,但下一位被证明是棘手的。所以,如果有人想要去,请成为我的客人:)
答案 0 :(得分:0)
未经测试,但我认为这可以做你想要的。
jQuery(function () {
var menus = jQuery('#menu li');
var open_menu = function open_menu() {
var menu_to_open = jQuery(this);
if (menu_to_open.hasClass('open')) {
menu_to_open.removeClass('open');
} else {
menus.removeClass('open');
menu_to_open.addClass('open');
}
};
menus.click(open_menu);
});