Javascript 显示在引导折叠上不起作用的事件

Javascript 显示在引导折叠上不起作用的事件,javascript,jquery,html,twitter-bootstrap,twitter-bootstrap-3,Javascript,Jquery,Html,Twitter Bootstrap,Twitter Bootstrap 3,“show”事件似乎不适用于动态创建的可折叠文件。调用javascript函数时,多个面板保持打开状态。单击面板标题仍然可以正常工作,如果我先手动单击面板,则“show”方法似乎可以工作。但前提是我先单击面板标题。有什么想法吗 JSFIDLE示例: 这样试试 $("#btnOpen").click(function () { var idx = $("#idx").val(); //Just find the data-toggle element respective to t

“show”事件似乎不适用于动态创建的可折叠文件。调用javascript函数时,多个面板保持打开状态。单击面板标题仍然可以正常工作,如果我先手动单击面板,则“show”方法似乎可以工作。但前提是我先单击面板标题。有什么想法吗

JSFIDLE示例:

这样试试

$("#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事件将处理真正的崩溃场景。

好的,我想我明白你的意思了。我当时不明白的是,为什么要先“点击”面板,“修复”问题?如果我先单击,然后调用“show”,它似乎是工作。不管怎样,谢谢您的解释和回答。@JIsaak在您的示例中,即使首先单击面板也有同样的问题。先点击面板,然后点击按钮,你们会看到两个都打开了。试着先点击所有三个。然后它对“表演”感到满意。无论您首先单击哪个面板,它们都会变为“固定”面板,而未单击的面板则会表现为它们不是组的一部分。@JIsaak这是因为单击事件设置了这些可折叠面板上的数据,所以在所有单击事件之后,您将从中获得所有面板上的数据集,从而使折叠按预期工作。或者,您也可以执行“$”(“#accordion2.panel collapse.in”)。而不是($(“#collapse”+idx)。collapse('show'))。collapse('hide')`
$(document).on('click.bs.collapse.data-api', '[data-toggle=collapse]', function (e) {