当完成将json解析为指定的span标签时,我想自动隐藏imperial标签currentntimperial和forecastimperial但是当我尝试这样做时使用
$('#currentimperial').hide();
$('#forecastimperial').hide();
并在chrome中查看结果并在控制台中查看我看到的而不是
style="display: none; "
他们确实有
style="display: inline; "
这是我在jsBin http://jsbin.com/efaguv/edit#javascript,html
上的整个javascript和html感谢我收到的任何帮助。
答案 0 :(得分:4)
我认为问题在于你没有允许你的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 });
因为(在完整代码中)ajax成功回调使元素可见(使用.fadeIn()
),最终结果是它们是可见的。
你可以改为隐藏ajax成功回调中的元素吗?
答案 1 :(得分:1)
您可以使用
$('#currentimperial').slideUp();
或
document.getElementById('currentimperial').style.display="none";
答案 2 :(得分:1)
我有一个类似的问题,其中hide没有隐藏。我正在使用angular并发现指令正在使用!important
样式属性上的display
css功能,强制它保持阻止并阻止隐藏将显示更改为无。
elem.attr('style', 'display: none !important;');