我正在为项目使用jQuery Mobile和Backbone JS。这主要是工作,使用jQuery Mobile的事件'pagebeforeshow'来触发正确的骨干视图。在特定的jQuery Mobile页面的Backbone View中,这就是它在做所有需要的动态事物的地方。视图所做的一些事情是使用Underscore的模板系统吸引特定的位。jQuery Mobile呈现页面初始化后添加内容的问题
这一切都很棒,直到我使用模板系统拉动表单位。例如,一组动态单选按钮(由Backbone Collection生成)。这些单选按钮我想使用jQuery Mobile提供的功能进行设计。目前,jQuery Mobile没有采用这些动态注入的单选按钮。我之前通过再次调用jQuery Mobile小部件“slider()”方法执行滑块时解决了此问题,并且它似乎刷新了它们......这似乎并不适用于这些单选按钮。
中的骨干视图,我试图再次调用控件的方法:
$(this.el).find("input[type='radio']").checkboxradio();
$(this.el).find(":jqmData(role='controlgroup')").controlgroup();
我尝试过其他的方式太绕,但它似乎我需要做的是这样的分组造型工作等但这看起来不正确! ...当我单击单选按钮时,这样做也会导致错误,并说:“在初始化之前无法在checkboxradio上调用方法;试图调用方法'refresh'”?
似乎应该有一种方法在jQuery Mobile中重新初始化页面或其他东西?我注意到源代码中有一个'页面'小部件。
jQuery Mobile如何处理在页面生成后被注入到DOM中的表单/元素?处理它如何构成表单有没有一种干净的方式?必须有一种干净的方式来调用表单来呈现“jQuery Mobile方式”,而不仅仅依赖基本HTML中的数据属性标记?
任何帮助或深入了解这个问题将不胜感激...我非常想尝试让Backbone JS和jQuery Mobile良好地协作。
非常感谢,詹姆斯
谢谢。我遵循你的话。在这种特殊情况下,我不得不使用$(element).page(“destroy”)。page()出于某种原因?但即使这样也不行。它正确地呈现了内容,但它不正确。获得相同的错误:“在初始化之前无法在checkboxradio上调用方法;尝试调用方法'refresh'”......奇怪。 – littlejim84 2011-04-14 10:28:56
'.page'可以在元素上调用一次。你必须围绕你动态添加的内容创建一个包装div。 – naugtur 2011-04-14 11:04:22
呃,那是stoopid。所以如果我有一个100%的Ajax页面,我想重新加载我的选项,我必须每次创建一个包装元素!必须是更好的方法。 – 2011-06-06 23:52:27