在jquery .load()之后保留jquery-ui元素类

时间:2012-02-25 15:30:13

标签: jquery-ui jquery jquery-ui-tabs jquery-ui-button

我有一个页面,我正在使用jQuery UI Tabs,我正在做的是通过Ajax加载每个标签的内容,但我遇到的问题是,在我的标签的内容中,按钮(我正在使用jQuery ui button)丢失所有jquery ui类,意思是:

第一次加载页面时,我的按钮如下所示:

<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(),但这些都没有。

请帮助我这个人

谢谢

1 个答案:

答案 0 :(得分:4)

我曾经遇到过这个问题并使用document.ready调用

解决了这个问题
function myreadyFunc(){
    $(".my_button").button();
    // Other codes
}

我有我的文件。就像跟着

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

在每次ajax(成功)电话之后,我曾经打过电话

myreadyFunc();

希望这对你也有帮助。我使用这种方法来执行document.ready的代码,这是每次ajax调用后调用document.ready无法实现的。