javascript - jQuery 显示 div 不起作用

标签 javascript jquery asp.net modal-dialog

我希望出现一个对话框 div,并将其余页面显示为灰色。我应该无法单击页面上的其他任何内容。
以下是我正在使用的代码。不知怎的,代码不起作用。单击超链接即可刷新页面。
有人可以帮忙吗?

<script>
    $(document).ready(function () {

                $("#DownloadButton").click(function (e) {
                    ShowDialog(true);
                    e.preventDefault();
                });

                $("#btnClose").click(function (e) {
                    HideDialog();
                    e.preventDefault();
                });

                $("#btnDownload").click(function (e) {
                    HideDialog();
                    e.preventDefault();
                });

            });

            function ShowDialog(modal) {
                $("#overlay").show();
                $("#dialog").fadeIn(310);

                if (modal) {
                    $("#overlay").unbind("click");
                }
                else {
                    $("#overlay").click(function (e) {
                        HideDialog();
                    });
                }
            }

            function HideDialog() {
                $("#overlay").hide();
                $("#dialog").fadeOut(300);
            } 

</script>




<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
        <div id="overlay" class="web_dialog_overlay">
        </div>
        <div id="dialog" class="web_dialog">
            <table>
                <tr>
                    <td>
                        <asp:Button ID="btnDownload" runat="server" Text="Download" />
                    </td>
                    <td>
                        <asp:Button ID="btnClose" runat="server" Text="Close" />
                    </td>
                </tr>
            </table>
        </div>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <Triggers>
                <asp:PostBackTrigger ControlID="DownloadButton" />
            </Triggers>
            <ContentTemplate>
                <div  class="BaseClass">
                    <asp:LinkButton ID="DownloadButton" runat="server">Download</asp:LinkButton>
                </div>
                <asp:GridView>
                </asp:GridView>
            </ContentTemplate>
        </asp:UpdatePanel>
    </asp:Content>

最佳答案

如果 DownloadButton、btnClose 和 btnDownload 是服务器控件的 ID,那么要获取客户端 ID,您必须使用:

$("#<%=DownloadButton.ClientID%>")

而不是

 $("#DownloadButton")

在你的 jQuery 代码中。

或者

如果您使用的是 ASP.Net 4.0

将 ClientIDMode="static"与服务器端控件一起使用。

关闭对话框:

使用链接关闭模型弹出窗口: 例如。

<a href="#" id="btnClose"></a> 

在你的Javascript中使用:

$("#btnClose").click(function (e) {
                    HideDialog();
                });

关于javascript - jQuery 显示 div 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11049680/

相关文章:

Jquery Mobile - 使用图像作为链接 - 图像下方的蓝线

asp.net - 使用 div 标签在一行中显示两个元素?

javascript - 在服务器上运行 Flot、Javascript?

javascript - 使用 JQuery 加载 IMDB 海报不起作用

jquery - 如何在jquery中创建和访问数组

c# - 如何使用 DDay.iCal 在 iCal 提要中设置时区?

c# - 有什么方法可以像在 AppSettings 中那样使用 key 访问自定义配置部分的值吗?

javascript - 来自递归获取请求的数组未正确返回

javascript - 当我更新图表时修改chart.js中的标签

jquery - IE10和IE11中不同的animate.css动画