2012-01-02 14 views
1

クロームで結果を表示し、私が代わりにjQueryの.hide()隠さない要素

style="display: none; " 

は、彼らが実際に持っていることがわかりコンソールに見える

style="display: inline; " 

ここにjsBinの全部のjavascriptとhtmlがありますhttp://jsbin.com/efaguv/edit#javascript,html

何か助けてもらえますか?

+0

あなたの質問に関連するJSとhtmlを表示できますか?あなたのjsbinリンクはあなたのhtmlではなく、デフォルトのjsbin "hello world" htmlを持つようです。 – nnnnnn

答えて

4

を使用することができます。

何が起こっているかのはるかに単純化した例:

1 jQuery(document).ready(function($) { 
2 $('#warning').remove('#warning'); 
3 $.ajax({ 
4  url: 'http://api.wunderground.com/api/APIKEYREMOVED/geolookup/conditions/forecast/q/51.773079,-1.591353.json', 
5  dataType: "jsonp", 
6  success: function(parsed_json) { 
7   $('#currentimperial').fadeIn(1000).append(+temp_f+ '℉ '); 
8  } 
9 }); 
10 
11 $('#celcius').hide(); 
12 $('#currentimperial').hide(); 
13 $('#forecastimperial').hide(); 
14 }); 
  • ライン2は
  • 線3(応答が将来のある時点で受信される)
  • AJAXリクエストを作るために実行する実行行11〜13が実行されて項目を非表示にします
  • 行14:文書準備完了機能が完了しました
  • jax応答が受信され、成功ハンドラが呼び出されて7行目が実行されます。

ajax成功コールバックは要素が表示されるように(.fadeIn()を使用)最終結果が表示されるためです。

代わりに、そのajax successコールバック内の要素を非表示にすることはできますか?

+0

.fadeIn()が再び見えるようになっていることを指摘してくれてありがとうございます。私は皇室の間、.fadeIn()を.hide()に変更しました。 –

1

あなたは、私は、問題はあなたのAJAX呼び出しが非同期であるという事実のために許可されていないことだと思います

$('#currentimperial').slideUp(); 

または

document.getElementById('currentimperial').style.display="none"; 
+6

私はそれが '.slideUP'ではなく' .slideUp() 'だと思います。 Javascriptでは '.getElementById()'は '#id'ではなく' id'だけを取ります。 – ThinkingStiff

1

私はhideが隠れていなかったのと同様の問題がありました。私は角度を使用していて、スタイルの属性に!important CSS機能を使用していて、それがブロックのままであり、hideが表示をnoneに変更しないようにしていることが判明しました。

elem.attr('style', 'display: none !important;');

関連する問題