1

当用户点击链接时,我试图将不同的页面加载到 div 中。

这是我的 index.html 代码:

 <li><a href="javascript:loadContent('#content_main','cardinal.jsp')">SMS</a></li>
 <li><a href="javascript:loadContent('#content_main','paypoint.jsp')">Paypoint</a></li>

loadContent 函数如下所示:

function loadContent(elementSelector, sourceUrl) {
$(""+elementSelector+"").empty();
$(""+elementSelector+"").load("http://localhost:7070/ning/"+sourceUrl+"");
}

我的 cardinal.jsp 看起来像这样:

$(document).ready(function() {
    setInterval(function(){
    alert("Cardinal");
},5000);
});

paypoint.jsp 有这样的代码:

$(document).ready(function() {
    setInterval(function(){
    alert("paypoint");
},5000);
});

我首先点击链接短信。这将加载 cardinal.jsp 并每 5 秒显示一次 alertbox(cardinal)。现在,当我单击 paypoint 链接时,我应该只运行 paypoint.jsp 页面。但是,相反,它似乎将 paypoint.jsp 内容附加到 div(它已经具有 cardinal.jsp 的内容)。这导致两个警报框交替显示。

如您所见,我曾尝试在加载新页面之前清空 div 的内容。但是,它仍然不起作用。我在这里做错了什么?

我在这里先向您的帮助表示感谢

4

2 回答 2

3

如果您删除设置它的代码,间隔不会消失。如果要删除它,请执行以下操作:

var interval = setInterval(function() {
  alert("paypoint");
}, 5000);

clearInterval(interval);

请记住,您加载的不是一个全新的页面,而是现有页面的新内容。

于 2012-04-11T04:40:28.870 回答
1

是的,正如 Heikki 所建议的那样……这对我有用……

在 index.html 中

<script>
    var interval;
function loadContent(elementSelector, sourceUrl) {
    $(elementSelector).empty(); 
    interval = window.clearInterval(interval);
    $(elementSelector).load("http://localhost/"+sourceUrl+"");
}
</script>

在 paypoint.jsp 中

$(document).ready(function() {
    interval = window.setInterval(function(){
    alert("Paypoint");
    },5000);
});

在 cardinal.jsp 中

$(document).ready(function() {
    interval = window.setInterval(function(){
    alert("Cardinal");
    },5000);
});

检查这是否也适合您....

于 2012-04-11T06:37:11.160 回答