jquery Mobile 加载脚本两次



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

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

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

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

我通过更改根(正文开始后的第一个div)以包含"页面"的数据角色来解决正文中的双重加载问题:

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

瞧,不再有双重装载!

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

更新:我用jQuery 1.7.2和jQuery Mobile 1.1.0在本地尝试过这个,它工作正常。 我看到一个 1 呼叫pageinit事件。 我什至尝试了多个页面,但仍然只看到一个pageinit调用。

你通常不想在jQuery Mobile中使用ready事件,而只坚持使用pageinit事件。 根据jQuery移动事件文档...

初始化

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

对于更具体的答案,你真的需要发布实际的代码;然而,随着你在问题中混合readypageinit,我猜pageinitready都在调用相同的代码。

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 core.我们建议您使用 1.7.1 来利用所有 最新版本中的巨大改进。如果你坚持使用 1.0.1 有一段时间,请记住仅支持 1.6.4。我们还在测试中 1.7.2 并将在未来版本中正式支持。

我的脚本在jQueryMobile 1.3.0中被调用了两次,并且 我只是通过使用jquery-1.9.1而不是jquery-1.7.2来解决这个问题。
你也可以使用 jQuery Migrate 插件
即<脚本 src="http://code.jquery.com/jquery-migrate-1.1.0.min.js">
以便向后兼容以前版本的 jQuery。

最新更新