回到页面不会使用jQuery mobile重新加载jQuery

时间:2014-02-03 09:28:52

标签: jquery jquery-mobile

我只是jQuery mobile的新手。

我有一个我正在构建的网站,我希望每个页面都在一个单独的HTML文件中。

当我第一次转到页面时,jQuery会按预期触发并绑定我的事件。但是,当我回到这个页面时,jQuery没有绑定任何东西。

将页面更改为登录屏幕:

$.mobile.changePage("/screens/login.html");

登录屏幕:

< div data-role="page" id="login" data-add-back-btn="true" data-dom-cache="false">
    <script src="/resources/scripts/login.js"></script>
    < div data-role="header" >
        <h1 class="ui-title" role="heading">&nbsp;</h1>
        <a id="btRegister" data-icon="edit">Register</a>
    </div>
</div>

login.js包含将事件绑定到btRegister元素的jQuery:

$(function () {
   $("#btRegister").click(function () {
       $.mobile.changePage("/screens/login.html");
    });
});

第一次这很好用。我点击登录按钮,按预期进入登录页面。

在登录页面上,我几乎完全相同,将我链接到注册页面。

返回注册页面后,事件未绑定,点击事件不执行任何操作。

我已经尝试了一切,包括reloadPage:true和data-dom-cache =“false”没有任何东西让这个工作看起来很暗淡。

我很感激来自更熟悉jQuery mobile的人的一些意见,告诉我哪里出错了。我应该坚持一个HTML页面吗?我非常希望能够使用多个HTML文件使我的应用程序更加模块化。

1 个答案:

答案 0 :(得分:0)

这是正常的。我遇到的主要问题是我的部分页面javascript类的类结构和我正在使用的名称空间。

我使用的是静态类,所以这是第一次使用,但每次都需要实例化该类。

我在我调用常用函数的全局js文件上连接了一个钩子:

$(document).bind("pageshow", function (event, ui) {
    pageInit();
});

然后我在所有部分页面脚本上都有一个pageInt()来实例化页面对象的新实例:

function pageInit() {
    var myRegisterPage = new registerPage();
    myRegisterPage.init();
};

function registerPage() {
}

registerPage.prototype = {

    init: function () {
        $("#btLogin").click(function () {
        $.mobile.changePage("/screens/login.html");
    });
}

}

压力非常大。