的jsfiddle:http://jsfiddle.net/p5sZJ/10/一些問題,引導倒塌+ Tab鍵導航
錯誤是隻在IE 10中再現(瀏覽器,Firefox工作完全正常)。 錯誤不會在IE 9中重現,因爲它不支持css轉換。 錯誤不會在IE 11和IE 11模式下工作的IE 11中重現。 (見我最後一次編輯,此信息是不相關的)
步驟來重現錯誤:
- 點擊 「第二」 標籤。
- 單擊「標題」摺疊。
- 點擊「內部鏈接」打開內部摺疊。
- 再次單擊「內部鏈接」關閉內部摺疊。
- 點擊「第一個」標籤。
- 點擊「打開手風琴的鏈接」。
- 嘗試打開關閉內部摺疊和主要摺疊。
預期結果:摺疊打開和關閉完全罰款。 實際結果:崩潰不工作。
HTML:
<ul id="mainTab" class="nav nav-tabs">
<li><a href="#first" data-toggle="tab">First</a></li>
<li><a href="#second" data-toggle="tab">Second</a></li>
</ul>
<div id="mainTabContent" class="tab-content" ng-app="myApp" ng-controller="MyCtrl">
<div id="first" class="tab-pane">
<a id="anchor" ng-click="navigate()">Link to open accordion</a>
</div>
<div id="second" class="tab-pane">
<div id="second-accordion" class="accordion">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" href="#second-body">
Heading
</a>
</div>
<div id="second-body" class="accordion-body collapse">
<table class="table">
<thead>
<tr>
<th>Table Head</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<a id="anchor-inner" href="#second-inner" data-toggle="collapse">
Inner link
</a>
</td>
</tr>
<tr class="collapse-row">
<td>
<div id="second-inner" class="collapse">
<div class="inner-description">
Description
</div>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
JS:
var module = angular.module('myApp', []);
module.controller('MyCtrl', function($scope){
$scope.navigate = function(){
$('#mainTab li:eq(1) a').tab('show');
var inner = $('#second-inner');
if (!$(inner).parents('.collapse').hasClass('in')) {
$(inner).parents('.collapse').collapse('show');
}
if (!$(inner).hasClass('in')) {
$(inner).collapse('show');
}
};
});
$(document).ready(function(){
var collapse = $('.collapse');
collapse.on('hidden', function (event) {
$(event.target).children().hide();
});
collapse.on('show', function (event) {
$(event.target).children().show();
});
});
附:似乎只有在使用AngularJs時纔會重現該錯誤。 (看我最後的編輯,這個信息是不相關的)不知何故在IE 10中'transitionend'事件不會引發,這就是崩潰被卡住的原因,但爲什麼不提高。
編輯:
錯誤是沒有AngularJS並在所有瀏覽器再現。我已將評論添加到我的答案中。您只需單擊選項卡(摺疊後的摺疊元素),然後立即單擊摺疊標題展開即可重現該錯誤。在舊的jsfiddle中嘗試幾次。
是的,這是該問題的可能解決方案之一,但是項目中已經寫了太多的代碼,並且使用bootstrap ui需要花費太多精力。感謝您的回覆 :) –