Как заставить Twitter Bootstrap Collapse работать на динамически загружаемом html с помощью ajax

я загружаю HTML с помощью ajax вызов, этот html имеет Крах Загрузочный. Вопрос коллапс не работает, если вы нажмете, он будет расширяться, но он не будет сворачиваться снова.

чтобы проверить, делаю ли я что-то неправильно, я помещаю тот же код на статическую страницу (не загружается с помощью ajax), и он работает нормально. Поэтому его проблема кажется только с динамически загруженным html.

Я попытался вручную включить свернуть, используя

$(".collapse").collapse() 

но все тот же вопрос.

думаю, мне нужно использовать jQuery live() / on() методы, потому что html является динамическим, но не уверен, как это сделать для вызова $(".collapse").collapse() потому что я думаю, что это работает только на событиях или это что-то еще, что мне нужно сделать ?

3 ответов


Я бы посоветовал вам позвонить

 $(".collapse").collapse() 

внутри функции успеха ajax после добавления динамического html.


мое решение такое:

    $('.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;
});