使用 jQuery 模板动态创建 jQuery Mobile 页面
我正在使用 jquery mobile 为 UI 构建锻炼目录,并使用 jquery 模板来处理 html。由于 .page() 函数,我已经能够将 html 附加到已创建的页面并让 jquery mobile 更改标记。
但是,我希望能够创建新的 jq 移动页面。我可以使用 data-role=page 将代码注入 div,调用 .page() 就可以了。但是将完整制作的页面附加到正文是行不通的。
编辑: 这个问题和我的答案是指jquery mobile alpha 3
I am building a workout catalog using jquery mobile for the UI and jquery templates to deal with the html. I have been able to append html to an already created page AND get jquery mobile to change the markup thanks to the .page() function.
However, I want to be able to create new jq mobile pages. I can inject code into divs with data-role=page, call .page() on it and it's all fine. But appending a fully made page to the body does not work.
EDIT:
This question and my answer refers to jquery mobile alpha 3
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
好的,我明白了。如果你想向 DOM 添加 a,你还必须为 data-url 添加一个值。当您创建静态 html 页面时,
jQuery mobile 会自动添加一个与您提供的 id 相同的 data-url。当你自己做的时候,你必须握住它的手,并传递给它一个data-url="home"。
当您生成 html 字符串时,请将其附加到 $.mobile.pageContainer,以便 jQuery Mobile 知道在哪里可以找到它(将它附加到正文也可以,但最好不要破坏现状)。
之后,在 DOM 中的页面上调用 .page() ,以便 jQuery mobile 发挥其所有神奇的
魔力,使其变得漂亮。
Ok I got it. If you want to add a to the DOM you have to also add a value for data-url. When you create a static html page,
<div data-role="page" id="home">
jQuery mobile automatically adds a data-url equal to the id you give it. When you do it yourself, you have to hold its hand and pass it a data-url="home".
When you generate your html string append it to $.mobile.pageContainer so jQuery Mobile knows where to find it (appending it to the body works also, but it's probably best not to rock the boat).
After that, call .page() on your page in the DOM so that jQuery mobile does all of its magical
<span>
magic to make it pretty.挖坟了这个帖子。使用 jquery mobile (1.1.0),这对我有用,
.trigger("create")
...Gravedigging this thread. Using the jquery mobile (1.1.0), this was working for me,
.trigger("create")
...当你打电话时
$('#home').page();
您要求 jQuery 使用页面的特定样式表和 js 函数来增强您的 div。该页面已存在于 DOM 中,但要显示它,您必须调用
$.mobile.changePage("#home",options)
。有关详细信息(以及特定于对象的选项),请参阅 http://jquerymobile.com/test /docs/api/methods.html
when you call
$('#home').page();
you're asking jQuery to enhance your div with the page's specific stylesheet and the js functions. The page is already present in the DOM, but to show it you must call
$.mobile.changePage("#home",options)
.for more information (and object-specific options), see http://jquerymobile.com/test/docs/api/methods.html