2012-05-03 6 views
18

divを更新したいと思います。サーバー上の新しい情報が必要です。他のすべての答えはあなたの$アヤックス要求から新しいデータを得ていることを前提とし、そのように、あなたのdivにそのデータをロードし、それを隠して、再びそれを表示するためにあなたを教えて:jqueryでリフレッシュするdiv

$("#panel").hide().html(data).fadeIn('fast'); 

私が知っています私が知っているのは、おそらくAjaxを使ってデータを取得するだけのはずです。しかし今はdivをリフレッシュせずにdivをリフレッシュし、divに新しいHTMLを入れないようにしたい。これは可能ですか?

+0

divに新しいHTMLを入れずにdivをリフレッシュするのは何ですか?何とか変更されたdivの元のコンテンツがあり、divに戻す必要があると思いますか? – Thomas

+0

div要素に.empty()を使って空にするか、または.html( '') – GillesC

+0

@gillescこれはdivに新しいhtmlを入れませんか? – Thomas

答えて

35

ページを更新せずにdivをリフレッシュしたいのですが...これは可能ですか?

はい、divの内容を変更しない限り、何もしないことは明らかですが、

あなただけのグラフィカルなフェードイン効果をしたい場合は、単に.html(data)の呼び出しを削除します。ここでは

$("#panel").hide().fadeIn('fast'); 

はと周りにデモすることができます混乱です:http://jsfiddle.net/ZPYUS/

それはdiv要素の内容を変更サーバーへのajax呼び出しを行わずに、ページを更新することなくしかし、コンテンツはハードコードされています。何らかの理由でサーバーに接続せずに、その事実について何もすることはできません:ajax、何らかのサブページ要求、または何らかの種類のページ更新。

HTML:

<div id="panel">test data</div> 
<input id="changePanel" value="Change Panel" type="button">​ 

のjavascript:

$("#changePanel").click(function() { 
    var data = "foobar"; 
    $("#panel").hide().html(data).fadeIn('fast'); 
});​ 

CSS:

div { 
    padding: 1em; 
    background-color: #00c000; 
} 

input { 
    padding: .25em 1em; 
}​ 
+31

私はこの「FOOバーfoobarの」時代を終了する請願を始めましょう:) RokoC.Buljan @ –

+5

:我々はすべてのインターネットの抗議は、特に変更で、どのように効果的な知っている原因[50歳から80歳くらいの間にある]文化的なミーム(http://en.wikipedia.org/wiki/Foobar#History_and_etymology):) –

8

私は最初の解決策を試してみましたが、それは動作しますが、エンドユーザーが簡単のdivのであることを識別することができますそれはフェードインしていないので、私は.toggle()。toggle()を試してみました。それは完璧に動作します。 私はメッセンジャーを開発し、最小限に抑え、チャットボックスのを最大化するために必要だとして、それが私のために完璧に動作し、この

$("#panel").toggle().toggle();

のように試すことができ、これは上記のコードではなく、それ最善を尽くします。

関連する問題