jQuery CSS' display:none#39;有时在页面加载上出现问题

时间:2012-08-12 18:12:13

标签: php jquery css .post

我通过$ .post从数据库加载一些文本。有时候在页面加载时屏幕只是空白,当我检查元素div时它被设置为<div id="#panel" style="display:none">,我不知道为什么会发生这种情况,尽管在$.post之前我正在淡出div当$.post获得输出时,我带回div。

$('#panel').html(output).show();

我正在使用$("#panel").fadeOut(100);,所以我可以让我的loading.gif工作。

有没有办法检查#panel的样式是否设置为display:none,如果是,则删除它。

感谢。

编辑:我调用复选框更改和页面加载的功能

$("#loading").show();
$("#panel").fadeOut(100);
$('#options :input').prop('disabled', true);
$('#loading').html("<img src='loading.gif'>"); 
var langSelected = $('input[name=text]:checked').map(function() {return $(this).parent().text();}).get().join(",");

$.post('http://mywebsite.com/data.php', { value: languages.url.value, mycheckboxes: langSelected},
function(output) {
    $('#panel').html(output).show(); 
    $('#loading').hide();
    $('#options :input').removeAttr('disabled');

});

1 个答案:

答案 0 :(得分:4)

试试这个:

if ($('#panel').is(':hidden')) {
     $('#panel').remove()
}

或:

$('#panel:hidden').remove()

但是,您可以使用error方法而不是删除div:

$.post("example.php", function() {
      // success
}).error(function() { 
      $('#panel').show()
      // error
})