jQuery 移动 css 和 js 不适用于使用 .load() 加载的内容

jQuery mobile css and js not applied to the content loaded with .load()

本文关键字:load 加载 css 移动 js 适用于 不适用 jQuery      更新时间:2023-09-26

so..这是场景
我有一个带有 data-role="page" 的页面和一个页眉容器和页脚div - 正常的 jquery 移动页面结构。

现在在我的内容div 中,我

有两个div,其中一个div 中我正在动态加载其他一些内容,其中包含指定了数据角色的按钮和文本框。

现在的问题是:

在div 中加载新页面时,控件不会显示为移动控件,而是看起来像普通的 HTML 控件。这可能是因为它们在 dom 准备就绪后加载,因此他们没有获得 jqm js 和 css。

以下是页面结构。

     <html>
     <head>
     <link rel="stylesheet" href="styles/jquerymobile.css" type="text/css" />
     <script src="scripts/jquery.js"></script>
     <script src="scripts/jquery.mobile.js"></script>
     </head>
     <body>
     <div  data-role="page">
     <div data-role="header">
     </div>
     <div data-role="content">
     <div id="static_content"></div> // no problem to this.
     <div id="dynamic_content"></div> // dynamic content used .load() - no jqm css loaded :(
     </div>  
     </div>
     </body>
     </html>   

任何帮助将不胜感激。

您必须将内容加载到jQuery移动事件结构中。详情请看这里:http://jquerymobile.com/demos/1.1.0/docs/api/events.html

我使用"pagecreate"事件在jquery增强内容之前对其进行了修改,如下所示:

  obj_out.add "$('div').live('pagecreate',function(event){" & vbNewLine
  obj_out.add " $('.jsvisible').show();" & vbNewline
  obj_out.add " $('.jshidden').hide();" & vbNewline
  obj_out.add " $('.nojs').removeClass('nojs');" & vbNewline
  obj_out.add "});" & vbNewline

您可以在加载动态内容后调用页面小部件构造函数

 $("div[data-role='page']").page('destroy').page();