Это касается jQuery Mobile 1.0 Beta 1
Мне нравится jQuery Mobile, но, ради бога, я не могу понять, как динамически добавлять элементы списка. Сначала я попытался без привязки к событию pagebeforecreate - элементы были добавлены в DOM, но не были видны, даже при том, что я пытался вызвать много комбинаций из следующих:
$("#categories").listview();
$("#categories").listview('refresh');
$("#categories").listview('refresh', true);
Я получаю "Результат выражения 'b [0]' [undefined] не является объектом". ошибка.
Затем я решил, что могу связать событие pagebeforecreate, чтобы добавить li-элементы до того, как jQuery Mobile сделает свое волшебство. Однако это не помогает .. тот же результат, что и раньше.
$().ready(function() {
$("#browse-categories").live('pagebeforecreate', function() {
$.get('http://foo.com/api/categories.xml', function(data) {
$xml = $(data);
$xml.find('entry').each(function() {
$("#categories").append("<li>" + $(this).find('title').text() + "</li>")
});
});
});
});
HTML:
<div data-role="page" id="browse-categories">
<div data-role="header">
<h1>Categories</h1>
</div>
<div data-role="content">
<ul data-role="listview" id="categories">
</ul>
</div>
<div data-role="footer">
<h4>Page Footer</h4>
</div>
</div>
Так какого черта?