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
我不确定这是否有帮助,但在添加动态元素时,我在成功ajax调用本身(例如此处和此处)中使用.page()但我发现它没有按预期工作.我发现在ajax调用中最好刷新元素(如果它是表单元素)以使用这些记录的方法:
复选框:
$("input[type='checkbox']").attr("checked",true).checkboxradio("refresh");
Run Code Online (Sandbox Code Playgroud)收音机:
$("input[type='radio']").attr("checked",true).checkboxradio("refresh");
Run Code Online (Sandbox Code Playgroud)选择:
var myselect = $("select#foo");
myselect[0].selectedIndex = 3;
myselect.selectmenu("refresh");
Run Code Online (Sandbox Code Playgroud)滑块:
$("input[type=range]").val(60).slider("refresh");
Run Code Online (Sandbox Code Playgroud)翻转开关(他们使用滑块):
var myswitch = $("select#bar");
myswitch[0].selectedIndex = 1;
myswitch .slider("refresh");
Run Code Online (Sandbox Code Playgroud)并且要添加非表单元素,请使用.page()
刷新整个页面对我有用:
$('#pageId').page('destroy').page();
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
36035 次 |
最近记录: |