我已经被jQuery Mobile代码和文档埋了一段时间了,但我似乎无法解决这个问题。
我的jQM网站上有一个listview。这并不是很复杂,但我希望在用户向下滚动时将项目添加到列表中。我有代码在所有工作中加载它们,但是一旦它们被添加到列表中,它们就不会被设置为jQM列表的一部分。
这是我到目前为止(也在http://jsfiddle.net/justinrussell/H2DzB/):
var items = [
{
'id': 2,
'title': 'Some item',
'desc': 'This is something.'
},
{
'id': 3,
'title': 'An added item',
'desc': 'Another item!'
}
];
var $listElem = $('#home').find('ul');
$.each(items, function(i, item) {
$('<li />').append(
$('<a />').attr('id', 'item_' + item.id).attr('href', 'item.php?item=' + item.id).append(
$('<h3 />').text(item.title).addClass('ui-li-heading'),
$('<p />').text(item.desc).addClass('ui-li-desc')
)
).appendTo($listElem).trigger('create');
});
现在从我在other questions上看到的内容看起来好像是.trigger('create')。无论我在哪里尝试它(或者.trigger('刷新')),它似乎并没有完全调整元素的样式。我错过了什么?
(如果我首先在HTML中构建元素而不是使用jQuery,可能会有所不同,但我宁愿将HTML保留在我的JavaScript之外。我不明白为什么它在元素的时候才重要但是已被添加到DOM中。)
答案 0 :(得分:3)
添加商品后:
$listElem.listview('refresh');