скрытие формы в зависимости от того, видима она или нет: проверка на видимость не работает - PullRequest
0 голосов
/ 02 февраля 2012

У меня есть этот код, чтобы проверить, является ли промежуток скрытым или видимым в зависимости от значения, которое он показывает или скрывает, событие запускается, когда пользователь нажимает кнопку:

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

проблема в том, чтодаже если он видимый, он никогда не скроет его, и предупреждение («Мострар») всегда будет отображаться, поэтому условие всегда ложно, почему это так?мой код неверен?Мой диапазон выглядит так:

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

CSS находится на внешней таблице стилей, и это похоже на

#panel{ display: none;}

Любая помощь очень ценится, не обращайте внимания на любой комментарий, который я прокомментировал, я простопробуя разные формы, чтобы увидеть любые изменения

Ответы [ 2 ]

1 голос
/ 02 февраля 2012

попробуйте сделать это if ($ ("# панель"). css ("дисплей")! = "нет")

0 голосов
/ 02 февраля 2012

Попробуйте это расширение, чтобы увидеть, поможет ли это вам.

jQuery.extend(
  jQuery.expr[ ":" ], 
  { reallyvisible : function (a) { return !(jQuery(a).is(':hidden') || jQuery(a).parents(':hidden').length); }}
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...