0

我有一个简单的 jQuery 脚本来显示/隐藏列表元素手风琴风格以及一个全局布尔数组来保存显示/隐藏的列表。但是,当从显示/隐藏不同的子列表切换时,布尔数组未定义,即(我使用 form_nav_links 调用函数以显示该列表,然后当我尝试立即显示 help_nav_links 时,该数组未定义,需要额外单击)。有人可以帮我解决这个问题吗?这是我所拥有的:

var listsOn = Boolean[2];
listsOn = [false, false];
var form_links = 0, help_links = 1;

function toggleView(subList) {
    var i;

    switch(subList){
        case "form_nav_links":
            i = form_links;
            break;
        case "help_nav_links":
            i = help_links;
            break;
        };

    if(listsOn[i]){
        $("." + subList).slideUp(1000);
        listsOn[i] = false;
        }
    else {
        $("." + subList).slideDown(1000);
        listsOn[i] = true;
        }

提前致谢!

4

2 回答 2

1

你真的应该在这里使用关联数组:

var listsOn = {
  form_nav_links: false,
  help_nav_links: false
};

function toggleView(subList) {
  if(typeof listsOn[subList] !== 'undefined') {
    if(listsOn[subList]{
        $("." + subList).slideUp(1000);
        listsOn[subList] = false;
    }
    else {
        $("." + subList).slideDown(1000);
        listsOn[subList] = true;
    }
  }
}
于 2012-06-27T18:21:48.207 回答
0

我通过使用 slideToggle() 解决了这个问题

于 2012-07-25T15:46:11.887 回答