我在jQuery Mobile中收到以下错误消息:
无法调用undefined
的方法'trigger'在jQuery.mobile.js中的第2836行,如下所示:
mpc.trigger( "beforechangepage" );
我的代码如下所示:
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.mobile.js"></script>
<script type="text/javascript" src="js/app.js"></script>
<title></title>
</head>
<body>
<!-- Application -->
<div data-role="page" id="application" data-theme="f" >
<div data-role="header">
<h1>header</h1>
</div><!-- /header -->
<div data-role="content">
<ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="f">
<li><a href="#" data-icon="arrow-r">test1</a></li>
<li><a href="#" data-icon="arrow-r">test2</a></li>
<li><a href="#" data-icon="arrow-r">test3</a></li>
</ul>
</div><!-- /content -->
<div data-role="footer">
<h1>footer</h1>
</div>
</div><!-- /page -->
<!-- Login -->
<div data-role="page" id="login" data-theme="f">
<div data-role="header">
<h1>header</h1>
</div><!-- /header -->
<div data-role="content">
<ul data-role="listview" data-inset="true" data-theme="c" data-dividertheme="f">
<li><a href="#" data-icon="arrow-r">test1</a></li>
<li><a href="#" data-icon="arrow-r">test2</a></li>
<li><a href="#" data-icon="arrow-r">test3</a></li>
</ul>
</div><!-- /content -->
<div data-role="footer">
<h1>footer</h1>
</div><!-- /content -->
</div><!-- /page -->
在app.js中,我有以下代码:
$(document).ready(
function () {
$.mobile.changePage( $('#login') );
})
我得到的只是一个空白的白色屏幕和我上面提到的错误。
任何帮助表示感谢。
此致
答案 0 :(得分:3)
我在OS X上的Safari中测试我的移动网站时遇到了类似的情况。要解决这个问题,我必须绑定到pagecreate
事件,而不是仅依靠$(document).ready()
。在我尝试使用pagecreate
之前,网站上的其他所有内容都无法绑定到$.mobile.changePage()
。
$().ready(function() {
console.log("Document is ready.");
$('#home').live('pagecreate', function(event) {
DoStuff();
});
});
DoStuff() {
if(!CheckCredentials())
$.mobile.changePage('#login');
else {
// Rest of code...
}
}
他们在their documentation中明确了这一点,我最初错过了。