如何使用ajax使Twitter Bootstrap Collapse在动态加载的html上工作

我正在使用ajax调用加载html,这个html有Bootstrap Collapse 。 问题是折叠不起作用 ,如果你点击它将会扩展,但它不会再次崩溃。

为了检查我是否做错了,我将相同的代码放在静态页面上(不使用ajax加载)并且它工作正常。 因此它似乎仅与动态加载的html有关。

我尝试手动启用折叠使用

$(".collapse").collapse() 

但仍然是同一个问题。

我想我需要使用jquery的live() / on()方法,因为html是动态的,但不知道如何调用$(".collapse").collapse()因为我觉得它只适用于事件还是我需要做的其他事情?

我建议你打电话

  $(".collapse").collapse() 

在附加动态html之后,在ajax的成功函数内部。

我的解决方案是:

  $('.collapse').on('show', function () { var $this = $(this); if($this.attr('data-href')) { $this.html($.getJSON($this.attr('data-href'),function(data){ $this.html(data.html); $this.removeAttr('style'); })); } }) 

只需在ajax成功事件上执行此操作即可。

 $('[data-toggle="collapse"]').click(function(e){ e.preventDefault(); var target_element= $(this).attr("href"); $(target_element).collapse('toggle'); return false; });