我只是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"> </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文件使我的应用程序更加模块化。
答案 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");
});
}
}
压力非常大。