所以如果有一定数量的LI,我想将数据过滤器添加到UL。我让attr正确添加,但页面上没有任何内容。
else
{
$('#presentations').attr("data-filter", "true");
$('#presentations').html('');
for (var i = 0; i < results.rows.length; i++) {
$('#presentations').append(
'<li><a href="javascript: loadPresentation(\'' + results.rows.item(i).presentName + '\';");">' + results.rows.item(i).presentName + '</a>'
+ '<a href="javascript: deleteConfirm(\'' + results.rows.item(i).presentName + '\');">delete</a></li>');
}
}
$('#presentations').listview('refresh');
$.mobile.changePage($('#dashboard'), {reloadPage: "true"} );
$('#dashboard .message').text('Your presentations');
}
我猜它是一个缓存问题,但我无法弄清楚如何解决它。帮助
答案 0 :(得分:5)
我尝试重新初始化,重新创建或刷新列表视图,但没有一个能够正常工作。
我能让它发挥作用的唯一方法就是:
$('#listview').listview('option', 'filter', true);
$('#listview').trigger("listviewcreate");
因此,您触发手动listviewcreate
事件,然后将过滤器设置为true。 (使用attr(), data() or jqmData()
设置也不起作用)
答案 1 :(得分:0)
以下是行动中的代码 - 感谢Gerjan!
else {
// don't create duplicate/double filter
$(".ui-listview-filter").remove();
if (results.rows.length > 3) { //Add filter search if more than 3 presentations.
$('#presentations').listview('option', 'filter', true);
}
$('#presentations').html('');
for (var i = 0; i < results.rows.length; i++) {
$('#presentations').append(
'<li><a href="javascript: loadPresentation(\'' + results.rows.item(i).presentName + '\');">' + results.rows.item(i).presentName + '</a>'
+ '<a href="javascript: deleteConfirm(\'' + results.rows.item(i).presentName + '\');">delete</a></li>'
);
}
$('#presentations').listview('refresh');
$('#presentations').trigger("listviewcreate");
$.mobile.changePage($('#dashboard'), { reloadPage: "true" });
$('#dashboard .message').text('Your presentations');
}