0

我在我的 JQuery Mobile 网站上初始化事件时遇到了一些问题,我只是想看看我是否以正确的方式进行操作。这是我的代码的样子:

<!DOCTYPE html>
<html>
    <head>
        <title>My page</title>

        <link rel="stylesheet" href="jquery.mobile-1.3.0-beta.1.css" />
        <script src="jquery-1.9.0.js"></script>
        <script src="jquery.mobile-1.3.0-beta.1.js"></script>
        <script text/javascript>
            function myFunction()
            {
                //do some code
            }
        </script>
        </head>
        <body>
            <div data-role="page" id="home">
                <div data-role="header">
                    <h1>Home</h1>
                </div>

                <div data-role="content" data-theme="f">
                    <p><a href="#next-page" data-role="button" data-transition="fade">2nd page</a></p>        
                </div>
            </div>
            <div data-role="page" id="next-page">
                <div data-role="header">
                    <h1>2nd page</h1>
                </div>
                <div data-role="content" data-theme="f">
                    <script text/javascript>
                        $("#next-page").on("pageinit", function() {
                            myFunction();
                        });
                    </script>
                </div>
            </div>
        </body>
</html>

出于某种原因,当我加载第二页时,我只是得到了 AJAX 加载图标并且它并没有停止加载。

另一件事是,我不想myFunction()在第二页加载之前被调用,这就是为什么我在第二页中有脚本的原因。

任何帮助深表感谢 :)

4

1 回答 1

1

Javascript 对键敏感,如果您调用函数myfuncion()则必须存在相同的函数。

在您的情况下,您的函数的名称中有一个大 F:myFunction(),因为调用的函数 myfuncion() 不存在浏览器将报告错误并且 jQuery Mobile 将停止执行。

另一方面,这段代码:

$("#next-page").on("pageinit", function() {

});

如果您想在第二页初始化期间执行此功能,则可以。Jzst一点建议,将其更改为:

$(document).on("pageinit", "#next-page",function() {

});

编辑 :

要解决您的问题,请将您的 pageinit 事件替换为 pageshow 事件。jQuery Mobile 在处理其他“图形”框架(地图、轮播)时存在问题,它们通常只能在 pageshow 事件中工作。

$(document).on("pageshow", "#next-page",function() {

});
于 2013-04-15T13:39:01.733 回答