我正在尝试在加载页面时加载一些jquery javascript,但它总是加载两次。我正在使用jquery 1.7.2和jquery mobile 1.1.0。我尝试了这3种不同的方法,但它总是加载脚本两次。
$(document).bind("ready", function() { }
$(document).ready(function() { }
$(document).live('pageinit',function(event) { }
编辑:我解决了,狗屎!我百分百肯定这个错误会发生在其他人身上,我很抱歉这个愚蠢的问题。
答案 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导航的一部分被拉入另一个页面 系统
要获得更具体的答案,您确实需要发布实际代码;但是,如果您在问题中混合ready
和pageinit
,我猜测pageinit
和ready
都在调用相同的代码。
答案 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向后兼容。