我正在使用 jQuery Mobile 进行一些测试,并试图弄清楚如何设置应用程序及其各个页面。理想情况下,我希望框架加载带有过渡的页面,但仍保持每个页面清晰分开。特别是,似乎通过 Ajax 加载的页面并没有“清除”前一页的 JavaScript 或 CSS:
示例 1 - JavaScript
例如,如果我有这样的东西page1.html
:
<script>
setInterval(function() {
console.info('Interval' + (new Date()));
}, 1000);
</script>
然后,如果我加载page2.html
,间隔仍在运行。如果我回到page1
,就会开始一个新的间隔,所以现在有两个间隔在运行,每次我回到 3 和 4 等等page1
。
示例 2 - CSS
另一个问题是样式。假设两个开发人员在两个不同的页面上独立工作,创建一个元素my-element
。在page1
中,此元素的样式为:
<style>
#my-element {
color: red;
}
</style>
<span id="my-element">This one is red</span>
在 中page2
,元素没有样式:
<span id="my-element">This one has no style</span>
再一次,如果我去page1.html
first 然后page2.html
,my-element
最终会变成红色,即使它没有被设置为page2.html
.
所以我想我有两个问题:
目前,加载页面的 jQuery Mobile 方法似乎根本无法扩展。CSS,JS 在一个页面上创建,继续到下一个页面。那么有什么方法可以让 jQuery Mobile 加载页面“干净”。即完全删除上一页中的所有内容,以便JS或CSS位不会影响下一页?
如果不是,那么在 jQuery Mobile 中以可扩展的方式处理多个页面的正确方法是什么?