如何手动调用jQuery mobile

时间:2012-01-31 17:04:17

标签: jquery-mobile

我的html页面加载得很漂亮,但我有一些JavaScript添加了几个按钮。 jQuery Mobile不会为新创建的按钮设置样式。

问:如何再次运行jQuery Mobile,以便根据data-theme属性设置新创建的按钮?

2 个答案:

答案 0 :(得分:6)

jQM文档:

  

增强新标记
页面插件调度一个pagecreate事件,大多数小部件都使用它来自动初始化自己。只要   当引用widget插件脚本时,它会自动增强   它在页面上找到的小部件的任何实例。

     

但是,如果您通过生成新标记客户端或加载内容   Ajax并将其注入页面,您可以触发create事件   处理其中包含的所有插件的自动初始化   新标记。这可以在任何元素(甚至是页面)上触发   div本身),为您节省了手动初始化每个插件的任务   (列表视图按钮,选择等)。

     

例如,如果加载了一个HTML标记块(比如一个登录表单)   通过Ajax,触发create事件自动转换   它包含的所有小部件(在这种情况下为输入和按钮)   增强版本。此方案的代码为:

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

创建与刷新:重要区别
请注意,create事件和刷新方法之间存在重要差异   一些小部件有。 create事件适用于增强原始标记   包含一个或多个小部件。应该使用刷新方法   在已经被操纵的现有(已经增强的)小部件上   以编程方式,需要更新UI以匹配。

     

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

答案 1 :(得分:2)

我认为您正在寻找.button()函数,您可以将refresh字符串传递给刷新按钮小部件:

$('#my-new-button').button();//this will create a button

$('#my-old-button').button('refresh');//this will refresh a button

Phill展示了一个使用.trigger('create')的示例,它与按钮小部件的.button()相同。每个小部件都有一个可以调用的功能。 Listview使用.listview()函数等