0

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

4

1 回答 1

1

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

于 2012-04-27T00:25:12.797 回答