很多帖子都提到了
$('#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);
...
所有这一切都很好,并且产生了一个看起来和我期望的一样的列表视图 - 问题是,数据过滤器属性不适用于搜索这个动态创建的列表视图。有什么想法吗?非常感激!