我正在创建一个 jQuery Mobile Web 应用程序,它会加载一些页面。
例如,a.html
是我的主页。它可能会调用b1.html
, b2.html
,..., b100.html
(用户可以点击其中一个按钮)。(页面加载了 jQuery Mobile 的 ajax 导航功能)
并且每一页都有一些事件,每一b[i].html
页id
s和很多东西都是一样的b[i].html
。但关键是,在任何时候,只有其中一个可能在 DOM 中。所以不会有id
冲突之类的。
问题
问题是事件的冲突。当用户返回a.html
fromb[i].html
时,HTML 将被删除,但事件将保留。如果我先去b[i].html
,然后再回来a.html
再去,这会引起很多问题b[j].html
。我的意思是,b[j].html
将无法正常工作... :(
我试过的
我已将其放入a.html
,以删除所有事件:
$("#mainpage").off("pagebeforeshow").on("pagebeforeshow",function() {
$("*").not("#mainpage").off();
//Other initialization codes...
});
但是,问题没有解决...
(mainpage
是 的data-role="page"
id a.html
)
例子
例如,我在每个中都有这个b[i].html
:
$(window).resize(function () {
alert("Resized");
});
在开始时(在a.html
),如果我调整窗口大小,将没有警报,但是在访问b[i].html
然后返回之后a.html
,如果我调整窗口大小,我会看到警报,即使使用那行代码(我已经尝试过部分。)...
a.html
那么,当用户返回from时,如何删除这些事件处理程序b[i].html
?