【问题标题】:Adding plus/minus to bootstrap panel在引导面板中添加加号/减号
【发布时间】:2016-08-25 13:32:55
【问题描述】:

考虑jQuery代码的以下sn-p

function toggleIcon(e) {
   $(e.target)
   .prev('.panel-heading')
   .find(".more-less")
   .toggleClass('glyphicon-plus glyphicon-minus');
}
$('.panel-group').on('hidden.bs.collapse', toggleIcon);
$('.panel-group').on('shown.bs.collapse', toggleIcon);

上面的代码在$(document).ready(function(){});里面

标记看起来像:

   <div class="panel-group" id="collapse">
    <div class="panel panel-primary">
        <div class="panel-heading">
            <h4 class="panel-title"><a data-parent="#collapse" data-toggle="collapse" href="#collapse-one"><i class="more-less glyphicon glyphicon-plus"></i> Item Details
            <span class="badge pull-right" id="itemdetails">0</span></a></h4>
        </div>
        <div class="panel-collapse collapse in" id="collapse-one">
            <div class="panel-body">
                @for (int i = 0; i < Model.MyList.Count; i++) {
                <div class="panel panel-info">
                    <div class="panel-heading">
                        <h4 class="panel-title"><a data-toggle="collapse"
                        href="#@Model.MyList[i].Number"><i class="more-less glyphicon glyphicon-plus">@Model.MyList[i].Number, @Model.MyList[i].PropA, @Model.MyList[i].PropB</i></a></h4>
                    </div>
                    <div class="panel-collapse collapse" id="@Model.MyList[i].Number">
                        <div class="panel-body"></div>
                    </div>
                </div>
            </div>
        </div>
        }
    </div>
</div>

这适用于除第一个面板之外的每个面板。第一个面板将始终打开,而不是添加一个加号,而是添加一个减号。第一个面板有 panel-collapse collapse in 类,它确保面板在页面加载时打开。

请注意,我有嵌套面板,这也适用于这些面板,它只是第一个给我带来问题的面板

谁能告诉我我做错了什么。

【问题讨论】:

  • 也发布相关的 HTML
  • @ZimSystem 我已经更新了我的 OP

标签: jquery asp.net-mvc twitter-bootstrap


【解决方案1】:

我已经试过了请参考下面的代码:

HTML

<div class="panel-group" id="accordion">

  <div class="panel panel-default">
    <div class="panel-heading">
      <h4 class="panel-title">
        <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo">
           Collapsible Group Item #2 
        </a><i class="indicator glyphicon glyphicon glyphicon-plus  pull-right"></i>
      </h4>
    </div>
    <div id="collapseTwo" class="panel-collapse collapse">
      <div class="panel-body">
        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
      </div>
    </div>
  </div>
  <div class="panel panel-default">
    <div class="panel-heading">
      <h4 class="panel-title">
        <a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseThree">
          Collapsible Group Item #3 
        </a><i class="indicator glyphicon glyphicon glyphicon-plus pull-right"></i>
      </h4>
    </div>
    <div id="collapseThree" class="panel-collapse collapse">
      <div class="panel-body">
        Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
      </div>
    </div>
  </div>
</div>

JavaScript 代码:

$('#accordion').on('hidden.bs.collapse', function () {
    //do something...
})
$('#accordion .accordion-toggle').click(function (e) {
    var chevState = $(e.target).siblings("i.indicator").toggleClass('glyphicon-minus glyphicon-plus');
    $("i.indicator").not(chevState).removeClass("glyphicon-minus").addClass("glyphicon-plus");
});

请参考此fiddle link 进行演示。

【讨论】:

  • 这会有同样的问题。如果您将类 in 添加到 id 为 collapseTwo 的 div 中,那么结果与我所面临的完全相同。正如我在我的 OP 中提到的,第一个面板必须在页面加载时保持打开状态,我无法将其关闭。如果第一个面板关闭,那么我的代码可以正常工作。但这是保持面板打开的要求之一
  • 检查这个更新的小提琴:jsfiddle.net/adminsunil/gn0wgvt0/1
猜你喜欢
  • 1970-01-01
  • 2014-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-10
相关资源
最近更新 更多