在我的移动网站中,我使用javascript动态创建表单,因此我需要“重新加载”页面以获得jQuery Mobile样式。 对于列表视图,我们可以简单地调用$(“#mylistview”)。listview(“refresh”)但是表单没有这样的功能。
我知道我们可以在表单的每个元素中调用“刷新”一个,但是通过这样做,样式没有正确应用。实际上,我的所有复选框都是分开的,它们不会出现在一个“插入”
中我有解决方法吗?
答案 0 :(得分:4)
发行说明中的文档:
示例:
$('#nameOfPage').trigger('create');
引用:
新的“创建”事件:一次轻松增强所有小部件
虽然页面插件不再专门调用每个插件,但它 会发送一个“pagecreate”事件,大多数小部件都会使用它 自动初始化自己。只要一个小部件插件脚本 引用后,它将自动增强小部件的任何实例 它在页面上找到,就像之前一样。例如,如果选择菜单 插件被加载,它将增强它在新内容中找到的任何选择 创建页面。
现在,这个结构允许我们添加一个新的创建事件 触发任何元素,为您节省手动初始化的任务 该元素中包含的每个插件。到现在为止,如果是开发人员 通过Ajax或动态生成的标记加载到内容中 需要手动初始化所有包含的插件(listview按钮, 选择等)以增强标记中的小部件。
现在,我们方便的创建事件将初始化所有必要的插件 在该标记内,就像页面创建增强一样 过程有效。如果您要使用Ajax加载HTML块 标记(例如登录表单),您可以自动触发创建 转换它包含的所有小部件(输入和按钮) case)进入增强版本。此方案的代码为:
$( ...new markup that contains widgets... ).appendTo( ".ui-page"
).trigger( "create" );
创建与刷新:重要区别
请注意,create事件之间存在重要差异 和一些小部件有的刷新方法。 create事件适合 用于增强包含一个或多个小部件的原始标记。该 某些小部件具有的刷新方法应该在现有的方法上使用 (已经增强的)以编程方式操作的小部件 并且需要更新UI才能匹配。
例如,如果您有一个动态添加新页面的页面 页面创建后带有data-role = listview属性的无序列表, 在该列表的父元素上触发create会对其进行转换 进入listview风格的小部件。如果有更多的列表项 以编程方式添加,调用listview的refresh方法 将这些新列表项更新为增强状态并离开 现有的清单项目未受影响。