2012-04-11 99 views
1

我想在用戶點擊鏈接時將不同的頁面加載到div中。jquery加載函數不會取代之前加載的頁面

這裏是我的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); 
}); 

而且找到付款.jsp有此代碼:

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

我先點擊鏈接短信。這會加載cardinal.jsp並每隔5秒顯示一次警報箱(基數)。現在,當我點擊付費點鏈接時,我應該只運行paypoint.jsp頁面。但是,相反,它似乎將paypoint.jsp內容附加到div(其中已包含cardinal.jsp的內容)。這導致兩個警報框被交替顯示。你可以看到,我試圖在加載新頁面之前清空div的內容。但是,它仍然不起作用。我在這裏做錯了什麼?

感謝您的幫助提前

回答

3

間隔如果您刪除設置它的代碼不會消失。如果你想刪除它做類似:

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

clearInterval(interval); 

記住,你不加載全新的一頁,但新的內容,以現有頁面。

+0

它不起作用。如果我給clearInterval,警報框根本不會被調用。 – CuriousCoder 2012-04-11 04:57:52

+0

如果我打電話給clearInterval,當再次單擊鏈接時,我將無法再次調用setInterval? – CuriousCoder 2012-04-11 05:51:27

+0

是的,你可以。我只是懷疑你的文檔就緒事件觸發動態添加內容。 – Heikki 2012-04-11 06:13:00

1

是由海基的建議....這個工作對我來說.....

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); 
}); 

和in cardinal.jsp

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

c哎喲,如果這對你有效......

+0

是的,它的工作原理。謝謝。 upvoted你的答案 – CuriousCoder 2012-04-11 15:06:36