jQuery Mobile在初始化页面后添加内容时出现问题

lit*_*m84 18 javascript jquery jquery-mobile backbone.js

我正在使用jQuery Mobile和Backbone JS进行项目.它主要是工作,使用jQuery Mobile的事件'pagebeforeshow'来触发正确的Backbone View.在该特定jQuery Mobile页面的Backbone View中,它正在执行所需的所有动态操作.视图中的一些功能是使用Underscore的模板系统提取某些位.

这一切都很棒,直到我使用模板系统拉出表格.例如,一组动态单选按钮(从Backbone Collection生成).这些单选按钮我希望使用jQuery Mobile提供的样式.目前,jQuery Mobile没有采用这些动态注入的单选按钮.我之前通过再次调用jQuery Mobile小部件"slider()"方法来执行滑块时解决了这个问题,它似乎刷新了它们......这似乎不是这些单选按钮的情况.

在Backbone View中,我尝试再次调用widget方法:

$(this.el).find("input[type='radio']").checkboxradio();
$(this.el).find(":jqmData(role='controlgroup')").controlgroup();
Run Code Online (Sandbox Code Playgroud)

我也尝试了相反的方式,但似乎我需要这样做才能使分组样式工作等等.但这似乎并不合适!...当我点击单选按钮时,这样做也会导致错误,说:"在初始化之前无法在checkboxradio上调用方法;尝试调用方法'刷新'"?

似乎应该有一种方法在jQuery Mobile中重新初始化页面或什么?!我注意到源代码中有一个"页面"小部件.

在页面制作完成后,jQuery Mobile如何处理注入DOM的表单/元素?是否有一种干净的方式来处理它如何构成表格?必须有一种干净的方式来调用表单来呈现"jQuery Mobile方式"而不依赖于基本HTML中的数据属性标记?

任何帮助或洞察这个问题将不胜感激...我非常喜欢尝试让Backbone JS和jQuery Mobile很好地协同工作.

非常感谢,詹姆斯

nau*_*tur 19

更新

从jQueryMobile beta2开始就有一个事件要做..trigger('create')在一个元素上,使其中的所有内容都被正确绘制.

另一个问题不是重复,但需要我发布10次以上的答案:)

[旧答案]

尝试 .page()

我的常见问题解答中的更多细节:http: //jquerymobiledictionary.pl/faq.html


Phi*_*ord 5

我不确定这是否有帮助,但在添加动态元素时,我在成功ajax调用本身(例如此处此处)中使用.page()但我发现它没有按预期工作.我发现在ajax调用中最好刷新元素(如果它是表单元素)以使用这些记录的方法:

并且要添加非表单元素,请使用.page()


Jai*_*ero 5

刷新整个页面对我有用:

$('#pageId').page('destroy').page();
Run Code Online (Sandbox Code Playgroud)

  • 从JQMbeta2开始,此解决方案不正确.请删除. (3认同)