当我需要基于JQuery Mobile刷新应用程序中的面板时,只需调用refresh()。
$('ul').listview().listview("refresh");
但是问题在于,由于ul
在全局范围内,因此所有列表都将刷新。
如何仅刷新实际的listview
?
我尝试使用ID,但是它不起作用-换句话说,JQuery Mobile CSS不适用于该listview
。
$('#myListView').listview().listview("refresh");
不得受刷新影响的列表如下所示:
<ul data-role="none" style="list-style-type:none;">
但在调用...时都受到相同的影响
$('ul').listview().listview("refresh");
答案 0 :(得分:0)
jQuery Mobile需要在<ul data-role="listview">
标签内添加ul
数据属性,因为他知道在页面创建时应增强哪些无序列表。如果要自己为动态添加的元素执行此操作,则需要指定相同的规则。例如:类似$("ul[data-role=listview]")
。
请注意,$("ul[data-role=listview]").listview()
将使列表视图完整,因此可能不需要在.listview("refresh")
之后立即调用。
此外,要遍历和增强页面中所有新添加的小部件,enhanceWithin()
就足够了。试试吧。
最终,如果您需要知道某个小部件是否已被分隔,请测试此元素内是否存在JQM小部件名称:
var isInstance = $.data(element, "mobile-listview");
if(isInstance) {
$(element).listview("refresh");
} else {
$(element).listview();
}