您使代码过于复杂。你为什么不尝试这样的事情:
$(document).ready(function () {
$('#toggle li').click(function () {
a = $(this).children(".plusminus");
$(this).children(".panel").slideToggle('fast', function(){
a.html($(this).is(":visible") ? '--' : '+');
});
});
$("body").click(function(event){
if ($(event.target).closest("ul").attr('id') != "toggle") {
$("#toggle li > .panel").slideUp();
$('.plusminus').html('+');
}
});
});
根据评论更新。
$(document).ready(function () {
$('#toggle li').click(function () {
$("#toggle li > .panel").slideUp();
$('.plusminus').html('+');
a = $(this).children(".plusminus");
$(this).children(".panel").slideToggle('fast', function(){
a.html($(this).is(":visible") ? '--' : '+');
});
});
$("body").click(function(event){
if ($(event.target).closest("ul").attr('id') != "toggle") {
$("#toggle li > .panel").slideUp();
$('.plusminus').html('+');
}
});
});
根据评论更新。
$(document).ready(function () {
$("#toggle li > .panel").hide();
$('.plusminus').html('+');
$('#toggle li').click(function () {
$("#toggle li > .panel").slideUp();
$('.plusminus').html('+');
a = $(this).children(".plusminus");
$(this).children(".panel").slideToggle('fast', function(){
a.html($(this).is(":visible") ? '--' : '+');
});
});
$("body").click(function(event){
if ($(event.target).closest("ul").attr('id') != "toggle") {
$("#toggle li > .panel").slideUp();
$('.plusminus').html('+');
}
});
});
$(document).ready(function () {
$("#toggle li > .panel").hide();
$('.plusminus').html('+');
$('#toggle li').click(function () {
if( !$(this).children('.panel').is(":visible") ) {
$("#toggle li > .panel").slideUp();
$('.plusminus').html('+');
}
a = $(this).children(".plusminus");
$(this).children(".panel").slideToggle('fast', function(){
a.html($(this).is(":visible") ? '--' : '+');
});
});
$("body").click(function(event){
if ($(event.target).closest("ul").attr('id') != "toggle") {
$("#toggle li > .panel").slideUp();
$('.plusminus').html('+');
}
});
});