jQuery CSS 'display: none' 问题有时在 PageLoad 上


jQuery CSS 'display: none' issue sometimes on PageLoad

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

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

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

有没有办法检查 #panel 的样式是否设置为显示:无,如果是,则将其删除。

谢谢。

编辑:我的函数我在复选框更改和页面加载时调用

$("#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');
});

试试这个:

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

或:

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

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

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