0

我是 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) 

工作正常。如何将样式应用于动态加载的列表?

4

1 回答 1

1

我在我的一个项目中做了非常相似的事情。我遇到了类似的麻烦,但这是目前对我有用的代码......

$("#myList").append(myjsonobject.someListItems).listview("refresh");

如您所见,您可以在追加调用的同一行中添加 listview 函数调用。如果没有更多代码,很难判断这是否能解决您的问题。

于 2013-07-11T19:21:39.087 回答