JQuery Accordion展开/折叠每个标题而不折叠展开的标题

时间:2013-12-07 08:42:32

标签: javascript jquery jquery-ui

我是JQuery世界的新手。我决定在我的程序中使用JQuery手风琴控件。但我需要的功能似乎不支持Accordion控件。我需要通过单击来展开/折叠每个标题,而不会折叠展开的标题。我在JS Bin找到了一个例子,但它似乎对我不起作用,我正在使用JQuery UI 1.10.3。我该如何解决这个问题?是否可以覆盖Accordion控制功能以达到目标?

3 个答案:

答案 0 :(得分:0)

该示例使用jQuery slideToggle函数来切换状态。在JQuery中还有一些功能:

// "Open" element
$('div').slideDown();

// "Close" element
$('div').slideUp();

例如,在手风琴下打开所有div:s:

$('.accordion div').slideDown();

答案 1 :(得分:0)

将以下内容添加到您的JS

$.fn.togglepanels = function(){
  return this.each(function(){
    $(this).addClass("ui-accordion ui-accordion-icons ui-widget ui-helper-reset")
  .find("h3")
    .addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-top ui-corner-bottom")
    .hover(function() { $(this).toggleClass("ui-state-hover"); })
    .prepend('<span class="ui-icon ui-icon-triangle-1-e"></span>')
    .click(function() {
      $(this)
        .toggleClass("ui-accordion-header-active ui-state-active ui-state-default ui-corner-bottom")
        .find("> .ui-icon").toggleClass("ui-icon-triangle-1-e ui-icon-triangle-1-s").end()
        .next().slideToggle();
      return false;
    })
    .next()
      .addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom")
      .hide();
  });
};

$("#notaccordion").togglepanels();\\GIVE YOUR ACCORDIONID IN THE PLACE OF **#notaccordion**

DEMO

答案 2 :(得分:0)

在你提供的jsbin例子中,用这一行替换第二行:

$accordionIO.next('div').hide();