【问题标题】:jQuery hidden Selector does not work properly in IE 11jQuery 隐藏选择器在 IE 11 中无法正常工作
【发布时间】:2015-09-18 18:44:13
【问题描述】:

IE 中的 jQuery 隐藏选择器有问题。

以下语法在 IE 11 上始终返回 true:

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

作为一个简单的例子,你可以试试这个小提琴: http://jsfiddle.net/1ox8q5x2/7/

这在 Firefox 下可以正常工作,但在 IE 11 下不行。

感谢您的帮助。

【问题讨论】:

  • 它在 IE11 下运行良好。我检查了你的小提琴。看看你的安全或隐私设置是否不会影响脚本执行。
  • 仅供参考,我在 IE10 上试过这个,它显示你的弹出窗口,上面写着“这个弹出窗口不应该出现!”

标签: jquery internet-explorer selector hidden


【解决方案1】:

似乎 :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);
});

【讨论】:

  • 这是一个易于使用的解决方法。不过,我仍然不明白,为什么 IE11 会这样。谢谢您的快速回答。
【解决方案2】:

这似乎只影响li 元素,具有类似代码的button 元素使用:hidden 选择器正确报告其状态

http://jsfiddle.net/e08u8z0f/

【讨论】:

    猜你喜欢
    • 2015-01-17
    • 2018-10-12
    • 2014-08-17
    • 2021-03-08
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多