【发布时间】:2013-08-08 05:07:21
【问题描述】:
我知道可以通过写出长字符串并将其附加到页面容器来动态创建 JQuery Mobile 页面。但是我想将页面创建为一个对象并将其附加到页面容器中。
这是我用来创建页面的方式: http://jsfiddle.net/pjUcn/
var page = $("<div data-role='page' id='page'><div data-role=header>
<a data-iconpos='left' data-icon='back' href='#' data-role='button'
data-rel='back'>Back</a><h1>Dynamic Page</h1></div>
<div data-role=content>Stuff here</div></div>");
page.appendTo($.mobile.pageContainer);
$.mobile.changePage('#page');
这就是我想要创建它们的方式:http://jsfiddle.net/8NZMw/2/
var page = $('<div/>'),
header = $('<div/>'),
back = $('<a/>'),
title = $('<h1/>'),
content = $('<div/>');
page.data('role', 'page');
page.attr('id', 'page');
header.data('role', 'header');
back.data('iconpos', 'left');
back.data('icon', 'back');
back.data('role', 'button');
back.data('rel', 'back');
back.attr('href', '#');
back.text('Back');
title.text('Dynamic Page');
header.append(back);
header.append(title);
page.append(header);
content.data('role', 'content');
content.text('stuff here');
page.append(content);
page.appendTo($.mobile.pageContainer);
$.mobile.changePage('#page');
创建其他简单的 JQuery Mobile 元素(如 this)没有问题,我只是不知道如何以这种方式创建整个页面。我什至尝试在页面对象上调用 .trigger("create") ,但这仍然没有成功。
任何帮助将不胜感激,谢谢!
【问题讨论】:
-
只有一个注释,您可能想使用
.prop('id', ...)而不是attr。除此之外,您遇到的问题到底是什么?$.mobile.pageContainer是否指向现有的 DOM 元素?
标签: javascript jquery jquery-mobile dom-manipulation