2012-02-25 46 views
5

我有一個我正在使用的頁面jQuery UI Tabs,我正在做的是通過Ajax加載每個標籤的內容,但是我遇到的問題是的是,在我的選項卡的內容,該按鈕(我使用jQuery ui button)失去了所有的jQuery UI的類,意思是:保留jquery-ui後的jquery-ui元素類.load()

頁面加載後的第一次,我的按鈕看起來是這樣的:

<button class="my_button ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only"> 
<span class="ui-button-icon-primary ui-icon ui-icon-plusthick"></span> 
</button> 

正如你所看到的,我的按鈕具有所有jquery-ui類ui-button, ui-widget, etc...。此外,我的按鈕有一個跨度,它顯示一個加號(+)作爲我按鈕的標籤。因此,我的按鈕正確顯示。

但是當我通過Ajax加載相同的內容(其中包含的按鈕),我的按鈕變成了這個樣子:

<button class="my_button"></button> 

正如你所看到的,我失去了我所有的按鈕的jQuery UI的類。因此,該按鈕不是造型

我該如何解決這個問題?

注意:請注意,我沒有手動將這些jquery-ui類添加到我的HTML按鈕中。當您在jQuery中使用$(".my_button").button();初始化按鈕時,jQuery會自動將所有必需的jquery-ui類應用於我的按鈕。所以請不要告訴我這是因爲我沒有將jquery-ui類預先分配給我的按鈕(我不應該)。另外,我試過.live().delegate(),這些工作都沒有。

請幫我這個人

謝謝

+0

我不知道,但一旦我遇到了這個問題,並用我回答它的方式解決它。 – 2012-02-25 15:48:13

回答

4

我曾經面臨過這樣的問題,使用的document.ready調用,比如

function myreadyFunc(){ 
    $(".my_button").button(); 
    // Other codes 
} 

我有我的文件解決了這個問題。準備好如下

$(document).ready(function(){ 
    myreadyFunc(); 
}); 

在每個ajax(成功)調用後我用致電

myreadyFunc(); 

希望這對你也有幫助。我使用這種方法來執行document.ready的代碼,這在每次調用ajax之後調用document.ready都是不可能的。

+0

你把'myreadyFunc()'放在$(document).ready()'之外嗎?因爲我只是試過這個,它不起作用 – user765368 2012-02-25 15:53:36

+0

是的,你應該把myreadyFunc()放在$(document).ready() – 2012-02-25 15:54:51

+0

之外。換句話說,你把所有的代碼放在'$(document)中。 ready()'在'myreadyFunc()'裏面?並在每個Ajax調用之後調用'$(document).ready()'內的'myreadyFunc()'? – user765368 2012-02-25 15:57:36