繁体   English   中英

使用jQuery Mobile刷新表单页面

[英]refresh form page with jQuery Mobile

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

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

我有什么解决方法吗?

发行说明中的​​文档:

例:

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

引用:

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

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

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

现在,我们方便的create事件将初始化该标记内的所有必要插件,就像页面创建增强过程的工作方式一样。 如果要使用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方法将仅将那些新列表项更新为增强状态,并使现有列表项保持不变。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM