隐藏表单取决于其是否可见,:可见检查不起作用

时间:2012-02-01 22:55:35

标签: jquery visibility

我有这个代码来检查跨度是隐藏还是可见,具体取决于它将显示或隐藏的值,当用户单击按钮时触发事件:

$('form').on('click', '#agregar', function(){
// var p = $('#panel');
//var a = $('#agregar');
if($('#panel').is(':visible')){
    $('#panel').hide();
    $('#agregar').val('Mostrar Forma');
    alert('ocultar');
}else {
    //if($('#panel').is(':hidden')){
    $('#panel').show();
    $('#agregar').val('Ocultar Forma');
    alert('mostrar');
}
});

问题是,即使它是可见的,它也永远不会隐藏它,警报('mostrar')将始终显示,因此条件总是假的,为什么会这样?我的代码错了吗?我的跨度是这样的:

<span id="panel>a fieldset and a form here</span>

css在外部样式表上,就像

#panel{ display: none;}

任何帮助都是非常苛刻的,不要介意任何评论的代码我只是尝试不同的形式来查看任何更改

2 个答案:

答案 0 :(得分:1)

尝试这样做 if($(“#panel”)。css(“display”)!=“none”)

答案 1 :(得分:0)

尝试此扩展程序,看看这是否对您有所帮助。

jQuery.extend(
  jQuery.expr[ ":" ], 
  { reallyvisible : function (a) { return !(jQuery(a).is(':hidden') || jQuery(a).parents(':hidden').length); }}
);