【问题标题】:How to remove backdrop only from modal如何仅从模态中删除背景
【发布时间】:2017-12-27 17:56:12
【问题描述】:

我目前正在使用 twitter 引导程序,最近我遇到了一个问题,即关闭模式时背景没有关闭。

解决方法:

 $('.modal-backdrop').hide();

这个解决方案的问题是,它会从整个页面中移除背景。当页面加载一些功能时我仍然需要它,以便用户在此过程中不会检查或取消选中某个字段。

下面的模态代码:

    <div class="modal fade" id="myModal" role="dialog">
        <div class="modal-dialog ">
            <!-- Modal content-->

            <div class="modal-content">
                <div class="modal-header">
                    <asp:HiddenField ID="hfImg" runat="server" />
                </div>
                <div class="modal-body" style="overflow: auto; align-content: center;">
                    <div class="col-sm-12">

                        <div id="views"></div>

                    </div>
                </div>
                <div class="modal-footer">
                    <div class="row">
                        <div class="col-sm-12">
                            <div class="col-sm-1 pull-left">
                                <button type="button" class="btn btn-primary" data-dismiss="modal";">Cancelar</button>
                            </div>
                            <div class="col-sm-1 col-sm-offset-8">
                                <button id="cropbutton2" class="btn btn-primary pull-right" type="button" onclick="applyCrop();">Cut</button>
                            </div>
                            <div class="col-sm-1 col-sm-offset-1">
                                <asp:Button runat="server"  CssClass="btn btn-primary pull-right" ID="save" Text="Edit" OnClick="btnEdit_Click" />
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

保存按钮后面的c#:

     btnEdit_Click(object sender, EventArgs e) 
     {
      ...
      ...
      ...
      ...
      ...
      ScriptManager.RegisterClientScriptBlock(this.Page, this.Page.GetType(), "modal", "closeModal();", true);
      }

还有用于 CloseModal() 的 javascript:

      function closeModal() {
        $('.modal-backdrop').hide();
        $('body').removeClass('modal-open');
        $('#myModal').modal('hide');
        $('#<%=hfImg.ClientID%>').val("");
    }

谁能帮帮我,我对这个框架没有太多经验,甚至不知道这是否以正确的方式完成。

Ps:这个页面是一个ascx

编辑: 我正在工作的这个项目很旧,我在开发它的过程中没有工作。

但现在我只是给它一点支持和维护。 原来这里存在架构问题。最初的开发人员试图通过页面始终在客户端控制结构中执行的完整回发来解决问题,从而使所有这些控件都位于更新面板中。

由于涉及的技术(Ajax 和其他东西),他们不希望它在每次用户客户端检查或取消检查某些内容或在另一个选项卡中打开子菜单时执行完整的回发。所以他们让页面看起来仍然存在,只是在更新面板上进行了少量更新。

为此目的在 Master 上定义了背景。

只会发生我的引导程序丢失对它之前引用的真实对象的引用,因为每当您更改任何内容(包括关闭模式)时页面都会得到回发。因此,当我在模态背景上执行 .hide 或 .remove 时,bootstrap 实际上是针对它可以找到的唯一参考,因此是在母版页上定义的参考。

因此,因为这将是我们无法处理的更多工作和花费更多时间,所以我们决定在模态标记上使用 data-backdrop: false 让模态没有背景。

感谢大家的帮助。

【问题讨论】:

  • $('.modal-backdrop').hide(); 仅在背景中添加display: none 样式。可以通过调用$('.modal-backdrop').show(); 找回。这对你有帮助吗?
  • 很遗憾没有。已经尝试过点击 .show(),但 .hide 总是隐藏整个页面的背景

标签: javascript c# jquery asp.net twitter-bootstrap


【解决方案1】:

很简单,把data-backdrop="false"放在触发模型的按钮上或者

$("#myBtn2").click(function(){
    $("#myModal").modal({backdrop: false});
});

here 是完整参考

【讨论】:

  • data-backdrop=''false" 不适合。它禁用模式的背景。我希望在模式打开时打开它。但问题是如何在模态仅针对模态而不是整个页面关闭?此外,我认为这段代码的语法错误,我的导航器在使用它时在屏幕上给了我错误
  • 检查我上面给出的引导模式文档页面,并给出一些代码示例
  • 您不想在弹出窗口打开时使用背景?
  • 我想要弹出窗口打开时的背景,弹出窗口关闭时关闭。一件不会自然发生的事情(这就是为什么我强制使用 $('modal-backdrop').hide()) 后来更改为 .remove() 事情是,当我删除(或隐藏)背景时在这个实例中,它从整个页面中删除/隐藏,当面板上有一些更新时我需要它,这样用户在直接与数据库交互时不会选中或取消选中任何内容。
猜你喜欢
  • 2014-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-06
  • 1970-01-01
  • 1970-01-01
  • 2013-08-25
  • 1970-01-01
相关资源
最近更新 更多