在动态添加HTML到jquery mobile之后刷新一个部分
可能重复:
动态添加可折叠元素
我已经看到了一些这方面的post,但它们似乎都没有真正应用,或者我只是读错了。 我有一些HTML从服务器提供给我,我真的无法改变。 我想要做的是,抓住HTML,将其插入div元素并让jQuery mobile在它上面做样式。 我可能需要多次这样做,这就是痛苦发生的地方。
当我第一次插入它时,它一切都很好,jqm拾取添加和完美的样式。 如果我第二次尝试,jqm根本不会拿起它。 我已经尝试制作一个我复制和修改的“模板”,或者只是插入静态HTML并且都不起作用。
我在下面有一个测试用例,你会看到,点击一次添加新列表,没关系,再次点击它就会得到一个没有样式的选择。 我在某处读过使用直播活动可能会有效,但在这种情况下也不行。
另外,我知道jQuery mobile中的选择列表selectmenu方法,但我得到的项目可能是单个/多个选择列表,一堆单选按钮甚至一组自由文本字段。 正如你所看到的,我也尝试在最顶层的元素上运行页面方法,我也尝试在我即将添加的元素上运行页面,但都无济于事。 🙁
测试:
List insert test 1 2 3 4 5 jkghjkgh $('#addips').live('click', (function() { l = $('#thelisttemplate').clone() $('#thelist').html('') $('#thelist').append($(l)) $('#thelist').page() })) $('#addlist').click(function() { l = $("12345") $('#thelist').html('') $('#thelist').append($(l)) $('#thelist').page() //$('#theplace').after($("12345")) //$('#thelisttemplate').page() }) $('#clearall').click(function() { $('#thelist').html('') })
更新:使用下面的naugur答案,添加新列表function看起来像……
$('#addlist').click(function() { l = $("12345") $('#thelist').html(''); $("#newstuff").html(l).page(); })
更新#2:显然现在已弃用,请参阅下文,了解有关如何修复beta2的一些想法。
更新
从jquery mobile beta2开始,你会触发一个事件 – .trigger('create')
常见问题更新: http : //demos.jquerymobile.com/1.3.2/faq/injected-content-is-not-enhanced.html
这是不推荐使用的:
使用.page()
函数。
我建议:
- 清空你填充的div
- 在里面创建一个新的div
- 填充新的div
- 在那个新的div上调用
.page()
我在这个问题上挣扎了几个小时,没有任何工作。 当在另一个菜单中选择了一个选项时,我有通过ajax调用填充的级联选择菜单。 DOM正在更新,但jQM拒绝承认新添加的选项。
最终工作的(它是基于预感 – 我没有在任何地方找到它记录)是:
$('#controlName').selectmenu('refresh');
我正在使用JQM 1.0 RC2。