Если оператор с двумя селекторами jQuery - PullRequest
0 голосов
/ 23 февраля 2012

Я пытаюсь получить предупреждение, если выполняются два условия:

  • Значение свойства display для элемента #playerbox равно block, И
  • Значение свойства display для элемента #playerinfo равно none

У меня есть следующее:

if ($("#playerbox").css("display") == "block" && $("#playerinfo").css("display") == "none"){
    alert("test");
}

Но предупреждение никогда не появляется.Тем не менее, тестирование только одного элемента будет работать:

if ($("#playerbox").css("display") == "block"){
    alert("test");
}

Так что я предполагаю, что не правильно соединяю два селектора в операторе if.Что я делаю не так?


ОБНОВЛЕНИЕ: Я должен был указать, что #playerinfo это внутри #playerbox.Это что-то меняет?

Ответы [ 3 ]

5 голосов
/ 23 февраля 2012

Почему бы не использовать :visible и :hidden?

if ($("#playerbox:visible,#playerinfo:hidden").length == 2){
     ...
}
3 голосов
/ 23 февраля 2012

Вы уверены, что JQuery действительно нашел элементы, которые вы ищете?

alert($("#playerbox").length);

alert($("#playerinfo").length);

Если любой из них возвращается как 0, значит, вы не получаете эти элементы. Возможно, у вас есть опечатка или имя класса, а не идентификатор.

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

Использование is

Например

 if($("#playerinfo").is(":hidden")) /* :visible for your other selector */
       //do stuff
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...