fel*_*uch 3 firefox jquery-plugins collapse twitter-bootstrap
带有2个切换按钮和2个全局按钮的示例[全部显示]和[全部隐藏]
Chrome工作正常FF> = 15有问题:点击2 x [隐藏全部] - 游戏结束 - 不再崩溃!
访问:http://jsfiddle.net/feldversuch/fB5PJ/8/
<div id="content" class="span8">
<button type="button" class="btn" data-toggle="collapse" data-target="#demo1">
toggle #demo1</button>
<button type="button" class="btn" data-toggle="collapse" data-target="#demo2">
toggle #demo2</button>
<button type="button" class="btn btn-danger" onclick="$('.collapse').collapse('show');return false;">
show all</button>
<button type="button" class="btn btn-danger" onclick="$('.collapse').collapse('hide');return false;">
hide all</button>
<br /><br />
<div id="collapser">
<div id="demo1" class="btn collapse in"> <span class="badge">#demo1</span>
Collapsible Content, Collapsible Content, Collapsible Content, Collapsible Content, Collapsible Content, Collapsible Content, initially shown </div>
<br /><br />
<div id="demo2" class="btn collapse in"> <span class="badge">#demo2</span>
Collapsible Content, Collapsible Content, Collapsible Content, Collapsible Content, Collapsible Content, Collapsible Content, initially shown </div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
解决方案:merv:只显示$('.collapse').not('.in')
<button type="button" class="btn btn-danger" onclick="$('.collapse').not('.in').collapse('show');return false;">
Show All</button>
Run Code Online (Sandbox Code Playgroud)
我的解决方案:只隐藏$('.collapse.in')
<button type="button" class="btn btn-danger" onclick="$('.collapse.in').collapse('hide');return false;">
hide all</button>
Run Code Online (Sandbox Code Playgroud)
这是一个Bootstrap错误.Bootstrap Collapse插件缺少任何短路代码,以防止hide
或show
方法被执行两次.这使插件可能陷入transitioning
状态.不同浏览器以不同方式处理 它在Chrome中运行的唯一原因是因为它$.support.transition.end
在in
删除类时仍会触发其事件(即使in
该类已经消失了!).
有人曾建议让插件防止不必要的调用,但由于粗俗的git礼节拉动失败(请参阅已经显示/隐藏时通过调用show/hide防止崩溃陷入过渡状态).我并不反对从图书馆方面防止这些问题的方法,但我个人认为有必要采用更广泛的方法,因为几乎所有使用CSS Transitions的Bootstrap插件都会出现像这样的小状态冻结问题.在这样的事情进入代码库之前,你只需要小心这些问题.
目前,一个简单的解决方法是执行自己的错误捕获和阻止hide
以及show
被调用两次.在您的示例中执行此操作的最简单方法是在"全部显示"和"全部隐藏"按钮单击回调中使用更具体的选择器.也就是说,
<button type="button" class="btn btn-danger"
onclick="$('.collapse').not('.in').collapse('show');return false;">
Show All
</button>
<button type="button" class="btn btn-danger"
onclick="$('.collapse.in').collapse('hide');return false;">
Hide All
</button>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6134 次 |
最近记录: |