jquery mobile加载脚本两次

时间:2012-04-23 13:25:17

标签: jquery jquery-mobile document-ready

我正在尝试在加载页面时加载一些jquery javascript,但它总是加载两次。我正在使用jquery 1.7.2和jquery mobile 1.1.0。我尝试了这3种不同的方法,但它总是加载脚本两次。

$(document).bind("ready", function() { }
$(document).ready(function() { }
$(document).live('pageinit',function(event) { }

编辑:我解决了,狗屎!我百分百肯定这个错误会发生在其他人身上,我很抱歉这个愚蠢的问题。

4 个答案:

答案 0 :(得分:7)

我遇到了与jqueryMobile相同的问题,如上所述。也就是说,放在正文中的所有脚本都会加载两次。如果放入,他们只会按预期加载一次。

我通过更改根(身体开始后的第一个div)来包含数据角色“page”来解决身体问题中的双重加载:

<body>  
<div data-role="page"> 

Voila,不再双重加载!

这是新HTML5BoilerPlate用户的常见问题。

答案 1 :(得分:2)

jQuery 1.7.2目前尚未使用jQuery Mobile 1.1.0进行全面测试。您可能想要使用jQuery 1.7.1。

  
    

支持jQuery 1.7.1

  
     

jQuery Mobile 1.1.0现在支持1.6.4和1.7.1版本   jQuery核心。我们建议您使用1.7.1来充分利用所有优势   最新版本的重大改进。如果坚持使用1.0.1   一段时间,记住只支持1.6.4。我们还在测试   1.7.2并将在未来的版本中正式支持。

答案 2 :(得分:2)

更新:我在本地尝试使用jQuery 1.7.2和jQuery Mobile 1.1.0,它运行正常。我正在看一次pageinit事件。我甚至尝试过多个页面,但仍然只能看到pageinit的一次调用。

您通常不希望在jQuery Mobile中使用ready事件,但只关注pageinit事件。根据{{​​3}} ...

  

在初始化页面上触发,初始化后发生。   我们建议绑定到此事件而不是DOM ready(),因为这样   无论页面是直接加载还是加载,都可以使用   内容作为Ajax导航的一部分被拉入另一个页面   系统

要获得更具体的答案,您确实需要发布实际代码;但是,如果您在问题中混合readypageinit,我猜测pageinitready都在调用相同的代码。

答案 3 :(得分:0)

  

我的脚本在jQueryMobile 1.3.0中被调用了两次   我刚刚使用 jquery-1.9.1 而不是jquery-1.7.2解决了这个问题。   
您也可以使用 jQuery Migrate 插件
  即&lt; script src =“http://code.jquery.com/jquery-migrate-1.1.0.min.js”&gt;&lt; /脚本&GT;
  为了与以前版本的jQuery向后兼容。