2

ここに示されているコードリンク テキストを使用しようとしたときに、いくつかの問題に遭遇しました。この問題について新しい質問を開くことが提案されました。そのコードを使用して、ミーティング用のバックチャネルを作成しようとしているリンク テキストを使用しています (データを表示するために Twitter 検索 API を使用しているため、ハッシュキーを使用してデータを取得してみてください)。問題は、コンテンツが取得されると、div が非表示になるかのようにすぐに再び消えることです。ソースを見ると、そこに div の内容が表示されていますが、表示されていません。タイムアウトが発生し、タイムアウトのエラー メッセージが表示されない限り、下の div の内容は残ります。完全を期すために、使用されているコードをここに置きます。

                <script type="text/javascript">
    function update() {

    $("#notice_div").html('<img src="img/ajax-loading.gif" border="0"/>');
    $.ajax({
        type: 'GET',
    url: 'inc/backchannel.php',
        timeout: 2000,
    success: function(data) {
        $("#backchannelContent").html(data);
        $("#notice_div").html(''); 
        window.setTimeout(update, 2000);
    }, 
    error: function (XMLHttpRequest, textStatus, errorThrown) {
        $("#notice_div").html('Timeout contacting server..');
        window.setTimeout(update, 60000);
    }
    })}$(document).ready(update);
    </script>

事前に助けてくれてありがとう、私はそれほどjavascriptコーダーではないので、ここでレンガの壁に向かって歩いているような気がします:-(

4

2 に答える 2

2

非表示のアニメーションが完了する前に div のコンテンツが読み込まれるため、問題が発生しています。次のように、別のコールバックを使用して解決できます:
(これは Mark が書いたものと非常に似ていますが、無名関数を使用しています)

$(document).ready(function(){
  setInterval(function(){
    $("#random:not(:animated)").hide("slow", function(){
        $("#random").load("inc/backchannel.php").show("slow");
    });//show callback
  } ,10000);//set interval
});//doc.ready
于 2009-02-03T14:05:49.063 に答える
1

このようなことを試してください

function getRandom() {
    $("#random").hide("slow");
    $("#random").load("http://www.google.co.uk", '', callback);
}

function callback() {
    $("#random").show("slow");
    setTimeout("getRandom();", 10000);
}

$(document).ready(getRandom);
于 2009-02-02T22:56:15.387 に答える