我有这个代码来检查跨度是隐藏还是可见,具体取决于它将显示或隐藏的值,当用户单击按钮时触发事件:
$('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;}
任何帮助都是非常苛刻的,不要介意任何评论的代码我只是尝试不同的形式来查看任何更改
答案 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); }}
);