2014-11-06 54 views
2

我在通過Ajax插入的元素上使用jQuery Collapse爲什麼Bootstrap Collapse在展開後繼續移除「collapse」類?

當我應用下面的行時,它刪除了collapse類。我需要這個類繼續保留,所以當Ajax內容需要關閉時,我可以調用collapse('hide')。

$ajaxContent.html(data).find('.collapse').collapse(); 

下面是我在我的PHP文件:

<section class="collapse"> 

下面是它最終與應用的jQuery後:

<section class="in" style="height: auto;"> 

爲什麼這樣做,以及如何我是否修復它以便崩潰類不會被刪除?

+0

在這個簡單的例子中它工作正常:http://jsfiddle.net/Luuuef3j/1/ 你可以用你的代碼來演示一個jsFiddle演示來演示這個問題嗎? – friedi 2014-11-06 19:10:52

+0

@friedi在你的例子中什麼都沒有發生,所以不知道它是如何爲你工作的很好... – webeno 2014-11-06 19:29:13

+0

該類被添加。用螢火蟲或開發者工具看看。 – friedi 2014-11-06 19:30:37

回答

3

避免調用您的元素的類collapse,因爲它正在被插件使用。把它稱爲別的東西(例如,給它一個collapse而不是類的ID),它應該工作。

EDIT:或者,也可以使用經由數據屬性的插件(data-toggle="collapse");我仍然不會調用元素的類collapse以避免混淆。

編輯#2:下面的問題@ friedi的評論,我看了一下提供Bootstrap's documentation on collapse的例子,並意識到他們實際上是使用collapse課呢。從你接受我的答案的事實出發,我假設重命名/刪除它仍然由於某種原因爲你解決了問題,但問題的根源可能在代碼的其他位置(可能是另一個js或者你的HTML的結構,不確定)。

編輯#3:我認爲罪魁禍首可能在你的data變量持有;我猜測它沒有使用html函數將類collapse添加到您要應用到$ajaxContent的任何結構中,並且它實際上從那裏丟失,而不是被collapse函數刪除(它不是,作爲它不會刪除該類)。