如果你想刷新一个已经初始化的小部件,那么你可以使用它各自的功能来刷新每种类型的小部件:
$('.ui-btn').button('refresh');
注意我使用.ui-btn类来选择按钮元素,这个类是在按钮初始化后添加的,所以你可以确定你正在刷新一个已经初始化的按钮小部件。
文档:http://jquerymobile.com/demos/1.1.0-rc.1/docs/buttons/buttons-methods.html
如果您需要初始化一个尚未初始化的小部件,那么您只需省略'refresh' 或使用.trigger('create'):
$('[data-role="button"], button, input[type="button"], input[type="submit"]').not('.ui-btn').button();//or .trigger('create');
注意这里我使用.not('.ui-btn') 省略了已经初始化的小部件,所以这只会初始化未初始化的小部件。如果您尝试初始化已初始化的小部件,则会收到错误消息(如果您尝试刷新尚未初始化的小部件,则同样如此)。
更新
如果您的 HTML 正在由服务器输出,那么您可以在将小部件添加到 DOM 之前对其进行初始化:
$.ajax({
...
success : function (serverResponse) {
var $out = $(serverResponse);
//if there is a container with elements inside it, use `.find()`,
//if all the elements are siblings at the top level then use `.filter()`
$out.find('a').button();
$('body').append($out);
}
});
您还可以使用.buttonMarkup() 函数更新按钮小部件:http://jquerymobile.com/demos/1.1.0-rc.1/docs/buttons/buttons-options.html