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

私は最初にSMSのリンクをクリックします。これにより cardinal.jsp がロードされ、5 秒ごとにアラートボックス (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 に答える