簡體   English   中英

jQuery .hide()不隱藏元素

[英]jQuery .hide() doesn't hide element

將json解析為指定的span標簽后,我想自動隱藏currentimperial和Forecastimperial的imperial標簽,但是當我嘗試這樣做時

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

$('#forecastimperial').hide();

並在chrome中查看結果並在控制台中查看

style="display: none; "

他們實際上有

style="display: inline; "

這是我在jsBin上的全部javascript和html http://jsbin.com/efaguv/edit#javascript,html

感謝您提供的任何幫助。

我認為問題是您不允許ajax調用是異步的。

一個簡化的例子:

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行:文檔准備功能完成
  • (最終)收到ajax響應並調用成功處理程序,因此執行第7行。

因為(在完整代碼中)ajax成功回調使元素可見(使用.fadeIn() ),所以最終結果是它們可見。

您是否可以隱藏該Ajax成功回調中的元素?

我有一個類似的問題,那就是隱藏沒有隱藏。 我正在使用angular,發現指令在display樣式屬性上使用!important css功能,迫使其保留為塊,並防止hide將顯示更改為none。

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

您可以使用

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

要么

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM