2012-04-11 15 views
1

ユーザーがリンクをクリックしたときに別のページをdivに読み込もうとしています。ここでjquery load関数が以前に読み込まれたページを置き換えません

は私の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機能は次のようになります。

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

そしてpaypoint:

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

私cardinal.jspは、このようになります.jspには次のコードがあります。

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

私はリンクSMSを最初にクリックします。 cardinal.jspをロードし、アラートボックス(基数)を5秒ごとに表示します。今、私がpaypointリンクをクリックすると、paypoint.jspページだけを実行するはずです。しかし、代わりにpaypoint.jspの内容をdivに追加しているように思えます(既にcardinal.jspの内容を持っています)。これにより、両方のアラートボックスが交互に表示されます。

ご覧のとおり、新しいページを読み込む前にdivの内容を空にしようとしました。しかし、それはまだ動作しません。私はここで間違って何をしていますか?あなたがそれを設定したコードを削除する場合は、事前

答えて

3

間隔で助けを

おかげで消えません。あなたはそれを削除したい場合のようなものです:

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

clearInterval(interval); 

では、既存のページにまったく新しいページが、新しいコンテンツをロードしていないことに注意してください。

+0

それは動作しません。私がclearIntervalを与えると、アラートボックスは全く呼び出されません。 – CuriousCoder

+0

clearIntervalを呼び出すと、リンクを再度クリックするとsetIntervalを再度呼び出すことができなくなります。 – CuriousCoder

+0

はい、できます。私はあなたのドキュメント準備完了イベントが動的に追加されたコンテンツのために発生するかどうかだけ疑う。 – Heikki

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

うん、それは動作します。ありがとう。あなたの答えをアップアップしました – CuriousCoder

関連する問題