使用jQuery Mobile刷新表单页面

在我的移动网站中,我使用javascript动态创建表单,因此我需要“重新加载”页面以获得jQuery Mobile样式。 对于列表视图,我们可以简单地调用$(“#mylistview”)。listview(“刷新”),但表单没有这样的function。

我知道我们可以在表单的每个元素中调用“刷新”,但是通过这样做,样式没有正确应用。 实际上,我的所有复选框都分开了,它们不会出现在一个“插图”中

我有什么解决方法吗?

发行说明中的​​文档:

例:

$('#nameOfPage').trigger('create'); 

引用:

新的“创建”事件:一次轻松增强所有小部件

虽然页面插件不再专门调用每个插件,但它会调度“pagecreate”事件,大多数小部件都会使用它来自动初始化自己。 只要引用了一个小部件插件脚本,它就会自动增强它在页面上找到的小部件的任何实例,就像之前一样。 例如,如果加载了selectmenu插件,它将增强它在新创建的页面中找到的任何选择。

这个结构现在允许我们添加一个可以在任何元素上触发的新创建事件,从而节省了手动初始化该元素中包含的每个插件的任务。 到目前为止,如果开发人员通过Ajax加载内容或动态生成标记,他们需要手动初始化所​​有包含的插件(listview按钮,选择等)以增强标记中的小部件。

现在,我们方便的创建事件将初始化该标记中的所有必要插件,就像页面创建增强过程的工作方式一样。 如果您要使用Ajax加载HTML标记块(例如登录表单),则可以触发create以自动将其包含的所有窗口小部件(在这种情况下为输入和按钮)转换为增强版本。 此方案的代码为:

 $( ...new markup that contains widgets... ).appendTo( ".ui-page" ).trigger( "create" ); 

创建与刷新:一个重要的区别

请注意,某些小部件具有的create event和refresh方法之间存在重要差异。 create事件适用于增强包含一个或多个小部件的原始标记。 某些小部件具有的刷新方法应该用于已经以编程方式操作的现有(已经增强的)小部件,并且需要更新UI以匹配。

例如,如果您有一个页面,您在页面创建后动态添加了一个带有data-role = listview属性的新的无序列表,则在该列表的父元素上触发create会将其转换为listview样式的小部件。 如果以编程方式添加更多列表项,则调用listview的refresh方法会将这些新列表项更新为增强状态,并保持现有列表项不变。