jQuery mobile 动态添加元素

Posted

技术标签:

【中文标题】jQuery mobile 动态添加元素【英文标题】:jQuery mobile dynamically add elements 【发布时间】:2011-11-01 06:14:47 【问题描述】:

我正在尝试在加载网站后将list view 添加到 jQuery 移动网站。仅仅将它添加到 DOM 是行不通的,因为一旦加载它,它就不会为数据角色标签解析它。这是一个例子:http://jsfiddle.net/Xeon06/h2gfT/2/

我的问题是,如何刷新它?我发现了许多类似的问题,答案从使用 .refresh (因为该元素从未初始化为列表视图而不起作用)到 .page (根本不起作用,我不知道为什么)。在撰写本文时,我使用的是最新版本的 jQuery mobile,1.02b

谢谢。

【问题讨论】:

在您的小提琴示例中,这是什么不起作用? 它没有被转换为 jQm 列表。 jquerymobile.com/demos/1.0b2/#/demos/1.0b2/docs/lists/… 【参考方案1】:

你可以在你的元素上调用.listview()

$("ul").listview();

Updated fiddle

【讨论】:

看起来 v1.4 的 jquery.mobile API 需要上一条评论中提到的“刷新”命令。【参考方案2】:

我刚刚从页面中删除了data-role 属性以使其正常工作。我认为这是您的标记中的问题。

http://jsfiddle.net/h2gfT/3/

【讨论】:

是的。现在向我解释一下。您从页面中删除了data-role 属性? 是的,我从页面中删除了 data-role 属性。 那个答案和评论没有用。他们什么都不解释。 因为它并没有真正起作用。我认为这个解决方案所做的是获取一个已经渲染的列表视图并将其移动到页面中的其他位置。您可以通过在其他地方预先创建这些视图并稍后移动它们来利用它来发挥自己的优势,但当然,这个解决方案的范围非常有限【参考方案3】:

我喜欢调用jQuery触发方法来完成这个:

$(element).trigger("create")

到目前为止,它对我来说毫无问题,尽管我听说它报告说用它创建新页面可能会出现问题。

【讨论】:

以上是关于jQuery mobile 动态添加元素的主要内容,如果未能解决你的问题,请参考以下文章

jQuery Mobile:渲染新元素但不触发动作

动态添加 HTML5 日期元素 iOS Safari

jquery 向DIV动态添加元素

jquery 动态添加的元素 怎么删除元素

jquery 怎么获得动态添加后的子元素个数

如何阻止动态元素在 Jquery/Jquery Mobile 中重新绑定?