【问题标题】:`$("selector").is(":visible")` doesn't work within a modal (bootstrap modal)`$("selector").is(":visible")` 在模态(引导模态)中不起作用
【发布时间】:2016-03-15 16:32:17
【问题描述】:

我经常使用$("selector").is(":visible") 来检查元素的可见性。

但是,当使用模态(引导模态)中的元素时,这只会发生故障。

尽管我找到了一种使用$("selector").css("display") 作为临时工具的方法,但这仍然是一个值得解决的问题。

请查看此jsiddle page 以查看有关此问题的更多相关信息。

【问题讨论】:

    标签: jquery twitter-bootstrap modal-dialog


    【解决方案1】:

    发生这种情况是因为您在执行代码时尚未显示您的模式。有动画。这是证明这一点的修改后的代码。您可以使用模态事件来完成您想要的:

    window.setTimeout(function() {
        console.log(labelError.is(":visible"));
        console.log(labelError.css("display"));
        labelError.show();
    
        console.log(labelError.css("display"));
        console.log(labelError.is(":visible"));
    },500);
    

    在此处查看修改后的 jsfidle 页面:https://jsfiddle.net/pbjd2bz6/

    【讨论】:

      【解决方案2】:

      从 Bootstrap 3.0 开始,我们可以使用 on('shown.bs.modal', function (e) {

      见 JsFiddle https://jsfiddle.net/jn111sum/4/

      $( "#generator" ).on('shown.bs.modal', function (e) {
              var labelError=$("#phrasesError");
              $("#phrasesError").fadeOut();
          console.log("this is where the useful infos begin");
          console.log(labelError.is(":visible"));
          console.log(labelError.css("display"));
          labelError.show();
          console.log(labelError.css("display"));
          console.log(labelError.is(":visible"));
      });
      

      希望有帮助

      【讨论】:

        猜你喜欢
        • 2016-03-30
        • 2016-06-15
        • 1970-01-01
        • 1970-01-01
        • 2012-01-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多