jquery ui accordion在点击另一个时避免关闭项目

时间:2012-10-29 10:09:47

标签: javascript jquery jquery-ui accordion

从现有的小提琴开始,我创建了这个样本:http://jsfiddle.net/2DaR6/90/

这是html代码:

<div id="accordion">
  <h3 id="header1" class="accClicked"><a href="#">Section 1</a></h3>
    <div> Good Morning Stackoverflow</div>
  <h3 id="header2" class="accClicked"><a href="#">Section 2</a></h3>
    <div>Buongiorno Stackoverflow</div>
  <h3 id="header3" class="accClicked"><a href="#">Section 3</a></h3>
    <div>Bonjour Stackoverflow</div>
</div>

这里是js代码:

$(function() {
    var icons = {
        header: "ui-icon-circle-arrow-e",
        headerSelected: "ui-icon-circle-arrow-s"
    };
    $( "#accordion" ).accordion({
        icons: icons,
        collapsible: true
    });
    $( "#header1" ).click(function() {
        $( "#accordion" ).accordion( "option", "icons", false );
    }, function() {
        $( "#accordion" ).accordion( "option", "icons", icons );
    });
});​

如果我点击第1部分,手风琴会正确打开,但我希望点击其他项目,之前打开的项目不会关闭。我怎样才能获得这种行为? 感谢

4 个答案:

答案 0 :(得分:8)

你不应该使用jquery手风琴来达到这种目的。 但是,它相对容易覆盖任何元素事件行为。当初始化accordion时,你只需要将click handler重写为相应的元素。

在你的情况下,这给出了这样的东西:

$('#accordion .accClicked')
        .off('click')
    .click(function(){
        $(this).next().toggle('fast');
    });​

见工作jsFiddle

答案 1 :(得分:1)

我同意手风琴可能不是最好的插件,但你可以做到以下几点:

你可以改变使用id并使用accordion作为一个类,然后使用多个div来打破你的部分。

&#13;
&#13;
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script>
      $(function() {
        $( ".accordion" ).accordion({collapsible: true, active: false});
      });
</script>
<div class="accordion">
  <h3>header 1</h3>
  <p>this is my content 1</p>
</div>

<div class="accordion">
  <h3>header 2</h3>
  <p>this is my content 2</p>
</div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

可能你需要另一个插件崩溃/扩展吗?例如this(参见页面底部的示例)

答案 3 :(得分:0)

$( “XYZ”)。手风琴({                     可折叠:是的,
                    有效:错误,                     heightStyle:“content”,                     图标: “”,                  });