Скрытый селектор jQuery не работает должным образом в IE 11

У меня проблема со скрытым селектором jQuery в IE.

Следующий синтаксис всегда возвращает true в IE 11:

$(someElement).is(":hidden")

В качестве простого примера вы можете попробовать эту скрипку: http://jsfiddle.net/1ox8q5x2/7/

Это отлично работает в Firefox, но не в IE 11.

Спасибо за помощь.


person Klappskalli    schedule 18.09.2015    source источник
comment
Он отлично работает под IE11. Я проверил вашу скрипку и посмотрите, не влияют ли ваши настройки безопасности или конфиденциальности на выполнение скрипта.   -  person Gaurav Shah    schedule 18.09.2015
comment
К вашему сведению, я пробовал это в IE10, и он показывает ваше всплывающее окно, в котором говорится, что это всплывающее окно никогда не должно отображаться!   -  person Jamiec    schedule 18.09.2015


Ответы (2)


Кажется, что: visible &: hidden оба отображают неправильные значения для IE11. Вы можете попробовать приведенный ниже код, я его протестировал, и он работает во всех браузерах.

$(".pagination li").on("click", function() {
    var elem = $(this);
    elem.show();
    if (elem[0].style.display == 'none') {
        alert("This Popup should never show up!");
    }
    elem.hide();
    if (elem[0].style.display == 'none') {
        alert("The element is hidden!");
    }
    setTimeout(function () { elem.show(); }, 1000);
});
person Gagan Jaura    schedule 18.09.2015
comment
Это простой в использовании обходной путь. Я до сих пор не понимаю, почему IE11 так себя ведет. Спасибо за быстрый ответ. - person Klappskalli; 18.09.2015

Похоже, это влияет только на li элементы, button элемент с аналогичным кодом правильно сообщает о своем состоянии с помощью селектора :hidden.

http://jsfiddle.net/e08u8z0f/

person Jamiec    schedule 18.09.2015