2017-12-27 10 views
-1

私はindex.phpページとinfo.phpページを持っています。 index.phpはinfo.phpの内容をdivにロードします。AJAXコール後にdivを開いたままにしますか?

index.phpファイル:

<html> 
<head> 
    <script type="text/javascript" src="includes/jquery-3.2.1.min.js"></script> 
</head> 
<body> 
    <div id="data"></div> 
    <script> 
    function loadDoc(){ 
    $("#data").load("info.php", function() { 
     //console.log("Load done."); 
    }); 

    }; 
    $(function(){loadDoc();}); 
    setInterval (loadDoc, 5000); 
    </script> 
</body> 
</html> 

Info.php:

<html> 
<head> 
<style> 
.box 
{ 
    border:1px solid #101010; 
    padding:20px; 
} 

#back 
{ 
    display:none; 
} 
</style> 
<script> 
$("#openBack").click(function(){ 
    $("#front").hide(); 
    $("#back").show(); 
}); 

$("#openFront").click(function(){ 
    $("#back").hide(); 
    $("#front").show(); 
}); 
</script> 
</head> 
<body> 
    <div id="front" class="box"> 
     front // <a href="#" id="openBack">open back</a> 
    </div> 
    <div id="back" class="box"> 
     back // <a href="#" id="openFront">open front</a> 
    </div> 
</body> 
</html> 

問題:私はdiv要素を開いたとき、それは後に閉じAJAX呼び出しがコンテンツを置き換えるため、数秒です。これを防ぐ方法を教えてください。私は一種のトグルを作ることを考えましたが、それを達成する方法や問題を解決するかどうか分かりません。

+0

AJAX呼び出しのために数秒後に自動的に_itが終了します._Ajaxリクエストでは何も閉じられません。div内はすべてのDOMがオーバーライドされるため、 '#data'内部にあります。 –

+0

あなたは正しい。どうすればこの問題を解決できますか? – derrtyones

+0

'div'は'#data'の中にありますか?関連するHTML/PHPコードを追加してください。 –

答えて

0

使用deferred.promise()

var dfd = jQuery.Deferred(); 
//pass defferred object in click or your function 
$("#openBack").click(function(dfd){ 
    $("#front").hide(); 
    //suppose this is your ajax call 
    setInterval(function(){ 
    //if success then resolve with ajax return data 
    dfd.resolve("ajax data"); 
    // if failed then reject 
    dfd.reject("if any data need pass"); 
    //based on hide and show 
    $("#back").show(); 
    }, 3000); 

})。

See the documentation of promise jquery

1

動的にそれが正しくそれを処理することはできませんので、ないのiframe状況は、外側のHTML/HEAD/BODYラッパーを持つべきではないページ、...

に注入し、任意のコンテンツ

5秒ごとにインターフェイスがリロードされ、既存のコンテンツはすべて消去され、新しいコンテンツで置き換えられます。どの州も保存されません。それがあなたが意味するものなのかどうかは分かりません。そうでない場合は、より多くの情報を提供してください。

関連する問題