这就是我试图挂钩 mobileinit 事件的方式:
$(document).bind("mobileinit", function() {
console.log("Mobile init");
});
但这不适用于 Chrome(最新版本)、Ripple v0.9.1 和运行 OS7.0 的黑莓粗体 9790。
注意:我也尝试过使用.on()
而不是,.bind()
但没有运气。两个 jQuery 移动版本(1.0.1 和 1.1.0)都失败了。
这就是我试图挂钩 mobileinit 事件的方式:
$(document).bind("mobileinit", function() {
console.log("Mobile init");
});
但这不适用于 Chrome(最新版本)、Ripple v0.9.1 和运行 OS7.0 的黑莓粗体 9790。
注意:我也尝试过使用.on()
而不是,.bind()
但没有运气。两个 jQuery 移动版本(1.0.1 和 1.1.0)都失败了。
我用过这个,它确实有效。
是否有可能是其他东西破坏了脚本或 mobileinit 没有被解雇?
Chrome 会触发 mobileinit 吗?
我刚刚找到了一些我在 jQuery Mobile 1.0 中使用的代码,我们刚刚升级到 1.1.0 并且它可以工作。
您确保还包括常规 ol' jQuery,对吗?
jQueryMobile 的文档可以做到这一点,所以我确信它可以工作。肯定有其他问题。对不起,我帮不上什么忙。你有更多信息吗?或者尝试使用其他设备。
[编辑]在同一个自我页面上,它说“因为 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>
看起来脚本顺序很重要。
这是另一个适用于我的简单示例(适用于 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>