我用下面的 JS 做了一个手风琴菜单
$(function(){
$('#accordion .fullChild>a.opener').text('+').addClass('box');
$('#accordion .opener').click(function() {
if($(this).text() == "-") {
$(this).text("+");
}
else {
$(this).text("-");
}
});
});
function initMenus() {
$('ul#accordion ul').hide();
$('ul#accordion li a.opener').click(
function() {
var checkElement = $(this).next();
var parent = this.parentNode.parentNode.id;
if($('#' + parent).hasClass('noaccordion')) {
$(this).next().slideToggle('normal');
return false;
}
if((checkElement.is('ul')) && (checkElement.is(':visible'))) {
if($('#' + parent).hasClass('collapsible')) {
$('#' + parent + ' ul:visible').slideUp('normal');
}
return false;
}
if((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
$('#' + parent + ' ul:visible').slideUp('normal');
checkElement.slideDown('normal');
return false;
}
}
);
}
$(document).ready(function() {initMenus();});
这一切都像我想要的那样工作,但为了一件事。当您打开一个加号时,它会变为减号,但除非您再次切换它,否则它会保持为减号
这是一个小提琴http://jsfiddle.net/ZpXrW/1/
html 和 css 是裸露的,我想了解我是如何编写错误的脚本以及如何使它变得更好——我假设有一种更简洁的方法来实现这一点。