2012-12-17 48 views
8

我正在使用加載html ajax調用此html有Bootstrap摺疊。問題是崩潰不起作用,如果您單擊它將展開但它不會再次崩潰。如何使用ajax製作Twitter Bootstrap使用動態加載的html進行摺疊

爲了檢查我是否做錯了什麼,我把相同的代碼放在一個靜態頁面上(沒有使用ajax加載)並且工作正常。所以它似乎問題只與動態加載的HTML。

我手動嘗試使用

$(".collapse").collapse() 

但還是同樣的問題,使塌陷。

我想我需要使用jquery的live()/on()方法,因爲html是動態的,但不知道如何調用$(".collapse").collapse(),因爲我認爲它只適用於事件或是我需要做的其他事情?

+1

你爲什麼不叫'$(「崩潰」)。倒塌()'阿賈克斯的成功fnction動態HTML被追加后里面.. – bipen

+0

請出示你的代碼。 – mccannf

+2

Collapse似乎適用於由ajax請求加載的內容。我做了一個簡單的jsfiddle測試:http://jsfiddle.net/QVsse/3/。如果由於某種原因不起作用,我建議您查看bipens建議並在ajax調用的回調函數中調用collapse()。 – Leif

回答

5

我建議你打電話

$(".collapse").collapse() 

阿賈克斯的成功函數內部的動態HTML被追加後。

3

我解決的是:

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

我試過和你上面提到的一樣,我無法得到它的工作。它正確擴展,但再次點擊,它不會在Firefox中崩潰。你能幫我解決它嗎? –

1

Ajax的成功事件只是執行此。

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