我目前正在开发基于jQuery Mobile的应用程序。我们之所以选择它,是因为在那一刻它看起来如此闪亮和美味,但随着我的工作越来越多,我越来越多地陷入了困境。
我分别创建了所有页面并且它们工作正常,但在将它们彼此链接后,我开始遇到一些困难。
对于每个页面,我需要加载不同的脚本和第三方库,经过一些研究后我想出了为data-role =“page”添加id并用.delegate()加载它们,但这给了我一个麻烦,所以问题:
1)当你移动到另一个页面时,如何取消绑定/杀死/清除/删除所有加载的脚本?
问题是,当我要去“第2页”并做:
$(document).delegate('#page-2', 'pageinit', function() {
...do something
});
转到“第1页”或“第3页”后,加载#page-2 .deligate()的内容会停留在DOM中并与其他页面上的脚本冲突。
P.S。凌乱但整个文件可以在这里看到 - http://cloud.ignatynikulin.com/011R3x2k401i271N420N
P.P.S。一个问题的快速更新:
为什么条件在.deligate()pageInit中不起作用以及如何使其工作?
谢谢
答案 0 :(得分:0)
不完全是答案,但你可以将一些页面移到单独的文件中吗?在我的情况下,如果我想编辑列表中显示的项目,我使用单独的aspx文件。例如,
<ul data-role="listview">
...
<li>
<a href="ItemPage.aspx?Id=1" rel="external">Item1</a>
</li>
...
</ul>
答案 1 :(得分:0)
我猜你的问题是关于如何从DOM中删除加载的脚本。
在同一行中找到现有问题: Is the javaScript not part of the DOM?