我在ajax调用中从服务器获取了一个锚标记片段html。如何“刷新”以便jquery mobile可以将必要的类附加到链接?
例如,jquery mobile生成的链接有一个ui-link:
<a class="ui-link" href="http://www.google.com">http://www.google.com</a>
如何确保在新生成的锚标记上附加正确的样式?
答案 0 :(得分:1)
如果要刷新已经初始化的窗口小部件,则可以使用它各自的功能刷新每种窗口小部件:
$('.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
答案 1 :(得分:0)
这是至少一种刷新jQuery Mobile按钮样式的方法:
$(yourButtons).button('refresh');
文档:http://jquerymobile.com/test/docs/buttons/buttons-types.html