这就是我试图加入mobileinit事件的方式:
$(document).bind("mobileinit", function() {
console.log("Mobile init");
});
但这不适用于Chrome(最新版本),Ripple v0.9.1以及运行OS7.0的BlackBerry bold 9790。
注意:我也尝试使用.on()
代替.bind()
,但没有运气。两个jQuery移动版本(1.0.1和1.1.0)都失败了。
答案 0 :(得分:47)
我已经使用了这个 工作。
是否可能有其他东西破坏了脚本或者没有触发mobileinit?
Chrome是否会触发mobileinit?
我刚刚发现了一些我在jQuery Mobile 1.0中使用的代码,我们刚刚升级到1.1.0并且它可以工作。
你确定还要包括常规的'jQuery,对吧?
jQueryMobile's docs do it,所以我确信它有效。别的一定是错的。对不起,我帮不了多少。你还有其他信息吗?或尝试使用其他设备。
[edit] 在同一个自我页面上,它说“因为mobileinit事件是立即触发的,所以你需要在加载jQuery Mobile之前绑定你的事件处理程序。链接到你的JavaScript文件按以下顺序:“
<script src="jquery.js"></script>
<script src="custom-scripting.js"></script> <!-- Note your script before jqm -->
<script src="jquery-mobile.js"></script>
看起来脚本顺序很重要。
答案 1 :(得分:5)
这是另一个与我合作的简单示例(适用于android和ios)
<script type="text/javascript" src="files/resources/lib/jquery/jquery-1.8.2.js"> </script>
<script type="text/javascript">
$(document).bind("mobileinit", function()
{
if (navigator.userAgent.toLowerCase().indexOf("android") != -1)
{
// your logic here
$.mobile.defaultPageTransition = 'none';
$.mobile.defaultDialogTransition = 'none';
}
if (navigator.userAgent.toLowerCase().indexOf("msie") != -1)
{
// your logic here
$.mobile.allowCrossDomainPages = true;
$.support.cors = true;
}
});
</script>
<script type="text/javascript" src="files/resources/lib/jquerymobile/1.3.2/jquery.mobile-1.3.2.js"></script>