繁体   English   中英

如何仅从模态中删除背景

[英]How to remove backdrop only from modal

我目前正在使用twitter bootstrap,最近我遇到了关闭模式时背景没有关闭的问题。

解决:

 $('.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。

谢谢大家的帮助。

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

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

是完整的参考

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM