jQuery Mobile 错误 - 无法调用未定义的 'trigger' 方法

3

我在jQuery Mobile中遇到了以下错误信息:

无法调用未定义的方法“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') );
})

我只看到一个空白的白屏和我上面提到的错误信息。
非常感谢您的帮助。
祝好,

相关:https://dev59.com/LGw15IYBdhLWcg3wD3Zk - Phill Pafford
登录示例:http://codeasp.net/blogs/teisenhauer/microsoft-net/1049/jquery-mobile-login-dialog-box - Phill Pafford
1个回答

3

我在测试移动站点时遇到了类似的情况,使用Safari浏览器在OS X上。为了解决这个问题,我不得不绑定到pagecreate事件,而不能仅仅依赖于$(document).ready()。在我的网站上,除了使用$.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...
    }
}

他们在文档中明确了这一点,而我最初没有注意到。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接