我是jQuery Mobile的新手,一般都是jQuery,遇到了问题。我已经使用2个AJAX调用填充了一个列表(来自两个来源的数据)。第二个调用位于第一个调用之内,因此它总是在它之后执行。除了数据来源之外,这些呼叫是相同的,如下所示:
HTML:
<ul data-role="listview" data-inset="true" data-theme="a" data-filter="true" id="allVideosList">
<li><a href="#">This item is styled properly</a></li>
</ul>
JavaScript的:
var html = "";
var id = 0;
var displayName = "name";
$.ajax({
type:'GET',
url: xxxx
data: xxxx
dataType: 'jsonp',
success: function processResult(data) {
....
html += '<li data-filtertext="' + resultData.name + ' ' + date + '"><a href="index.html?id=' + id + '">' + displayName + '</a></li>';
$('#allVideosList').append(html);
});
变量在ajax调用中定义,但在此处省略。创建的列表缺少任何样式,每个项目显示为链接。功能:
$('#allVideosList').listview('refresh');
或
$('#allVideosList').listview();
返回错误
$(...).listview
不是函数
在控制台中。功能:
$('#allVideosList').trigger('create');
不会改变任何事情。
如果我将变量html打印到控制台,复制其内容,并将其添加到不同页面的列表中,则正确应用样式。例如:
HTML:
<div data-role="content" id="list">
<ul data-role="listview" data-inset="true" data-theme="a" data-filter="true" id="allVideosList">
</ul>
JAVASCRIPT:
var html = "";
html = '<li data-filtertext="insert text here"><a href="index.html?id=146">Name</a></li><li data-filtertext="insert text here 2"><a href="index.html?id=147">Name 2</a></li>'
$("#allVideosList").append(html)
工作正常。如何将样式应用于动态加载的列表?
答案 0 :(得分:1)
我在其中一个项目中做了类似的事情。我有类似的麻烦,但这是目前适合我的代码...
$("#myList").append(myjsonobject.someListItems).listview("refresh");
如您所见,您可以在追加调用的同一行添加listview函数调用。如果没有更多代码,很难判断这是否能解决您的问题。