Jquery Mobile:当listview()函数不起作用时,如何设置动态添加列表项的样式?

时间:2013-07-11 17:29:06

标签: javascript jquery ajax listview jquery-mobile

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

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

1 个答案:

答案 0 :(得分:1)

我在其中一个项目中做了类似的事情。我有类似的麻烦,但这是目前适合我的代码...

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

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