试试这个方法。
$("#btnOpen").click(function () {
var idx = $("#idx").val();
//Just find the data-toggle element respective to the current element and invoke the click on it.
$("#collapse" + idx).filter(':not(.in)').prev().find('[data-toggle]').trigger('click.bs.collapse.data-api');
//or just simply do:
// $("#accordion2").find('[data-toggle]:eq(' + idx + ')').trigger('click.bs.collapse.data-api');
//Or you can also do:
//$("#accordion2 .panel-collapse.in").not($("#collapse" + idx).collapse('show')).collapse('hide');
});
演示
调用collapse
方法的原因只会根据传递的类型折叠当前元素,即隐藏、显示或切换。它不处理在附加到[data-toggle]
可折叠元素的自定义单击事件中处理的其他打开项目的自动折叠。即在以下部分:
$(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) {
因此,在相应元素上调用 click 事件data-toggle
将处理真正的折叠场景。