jQuery Mobile pageinit,脚本加载和其他东西

时间:2012-05-16 10:20:16

标签: javascript jquery jquery-mobile bind unbind

我目前正在开发基于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中不起作用以及如何使其工作?


谢谢

2 个答案:

答案 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?