如何在手风琴菜单中重置为加号

时间:2012-04-27 00:03:54

标签: jquery

我使用以下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是裸的,我想知道我是如何编写错误的脚本以及如何使其更好 - 我假设有一种更简洁的方法来实现这一点。

1 个答案:

答案 0 :(得分:1)

要让它改回加号,你需要......改回来,它本身不会发生。我使用手风琴逻辑更新了小提琴来解决问题http://jsfiddle.net/ZpXrW/2/