我是 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)
工作正常。如何将样式应用于动态加载的列表?