可以宣布建立菜单的功能,包括它放在网站的每一页上(如果你还没有一个全球性的JS包含文件),然后调用它来建立你的菜单在必要时:
function build_menu($container) {
var out = '<ul data-role="listview">...</ul>';
$container.append(out).trigger('create');
}
$(document).delegate('#my-page-id', 'pageinit', function() {
build_menu($(this).children('.ui-page'));
});
否则,您可以检查小部件是否具有在初始化过程中应用的.ui-listview
类。
//cache the clone
var $clone = $('#my-element').clone();
//check if the clone has the initialized class
if ($clone.hasClass('ui-listview')) {
//since this listview has already been initialized, refresh it
$('#my-container').append($clone).children().last().listview('refresh');
} else {
//initialize this listview clone
$('#my-container').append($clone).children().last().listview();
}
你要确保你的listview
部件没有一个ID或者你将要追加到DOM所以你的ID是唯一的前更改克隆的ID。
调用页面上的'.trigger('create')'来初始化它的所有子元素。你也可以直接选择ul,如果它没有被初始化,则调用'.listview()',如果它已经被初始化,则调用'.listview('refresh')'。 – 2012-03-29 18:22:05
@KevinB我实际上一直在尝试所有这些都没有成功。我会再试一次,并更新我所尝试过的。 – xdumaine 2012-03-29 19:03:35