1

很多帖子都提到了

$('#ListViewID').listview("refresh") 

在您动态修改定义为列表视图的元素的 DOM 之后需要进行的调用。我没有问题让列表视图看起来正确。问题是,我标记了我的 listview 元素以使用 jquery mobile 的数据过滤器功能。这适用于静态列表视图,但不会过滤我的列表视图的动态填充内容。我没有连接一个字符串来创建我的列表视图 - 我正在克隆一个原型单元格。这是问题吗?

这是我的代码

// capture prototype
        var prototype = $("#" + currentPage).find(".prototype");

在确定原型之后,我同样锁定了 listview 元素的“Shell”:

        var shell = $("#" + currentPage).find(".Rolodex");
        // declare variable for focus cell
        var thisrow;

....

                // map fields
                var pTitle;
                var pSubtitle1;
                var pSubtitle2;
                var pJumper;
                var cellLock;

在这里,我根据需要多次复制原型单元格,以便输入数据

                // build empty rows
                for (i=0; i<len; i++) {
                    thisrow = prototype.clone();
                    thisrow.show();
                    thisrow.addClass('cell');

在这里,我删除了每个单元格的原型类,因此我可以通过“.cell”类识别我的所有“单元格”

                    thisrow.removeClass('prototype');
                    thisrow.attr("id","cell_"+i);
                    shell.append(thisrow);
                }
                shell.listview("refresh");

                for(i=0; i<len; i++) {
                    // map available fields
                    thisrow = shell.find(".cell").eq(i);
                    pTitle = shell.find(".title").eq(i+1);
                    pSubtitle1 = shell.find(".subtitle1").eq(i+1);
                    pSubtitle2 = shell.find(".subtitle2").eq(i+1);
                    pJumper = shell.find(".execBrowse").eq(i+1);
                    // log row info
                    console.log("Row = " + i + " content = " + 
results.rows.item(i).code_content);
                    // is hyperlink?
                        if (/^http[s]?\:\/\//.test(results.rows.item(i).code_content)) {
                            thisrow.find(".sub-menu").show();
                            pJumper.attr("href",results.rows.item(i).code_content);

                                // yes is a hyperlink

...                                     
pTitle.html(results.rows.item(i).code_content);
...

所有这一切都很好,并且产生了一个看起来和我期望的一样的列表视图 - 问题是,数据过滤器属性不适用于搜索这个动态创建的列表视图。有什么想法吗?非常感激!

4

1 回答 1

1

这应该很容易工作。

我为您创建了一个示例:http: //jsfiddle.net/Gajotres/pCqjs/

其中有一个小列表视图,并且 $.ajax 正在向它动态附加更多项目。可以通过过滤器搜索新的项目。

您需要检查动态生成的内容是否与规范相同,它应该如下所示(这是一个示例):

<li>
    <a href="#cars">
        <h3>Movie title: Jurasic Park</h3>
        <p>Blah Blah Blah</p>
    </a>
</li>
于 2012-12-27T16:14:22.157 回答