使用RegisterStartupScript不会从C#代码调用jQuery函数

Dhe*_*mar 2 c# asp.net jquery

我有一个jQuery功能:

<script src="Scripts/jquery-3.1.1.min.js"></script>
    <script type="text/javascript">

        $(document).ready(function () {
            alert("1");
            function hideInfo() {
                alert("2");
                $("#h3memberInfo").fadeOut("slow");
            };
        });

    </script>
Run Code Online (Sandbox Code Playgroud)

我试图从c#调用上面的函数,如下所示.

 ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "alert", "hideInfo();", true);
Run Code Online (Sandbox Code Playgroud)

在页面加载我得到alert("1")但从alert("2")未被触发.

我做错了什么?

Aru*_*una 6

由于您的函数hideInfo()包含在$(document).ready块中,因此当您尝试使用后面的代码时,它在全局范围内不可用.

您可以修改您的代码,如下所示,

<script src="Scripts/jquery-3.1.1.min.js"></script>
    <script type="text/javascript">

        function hideInfo() {    
           $(document).ready(function () {
                alert("1");
                $("#h3memberInfo").fadeOut("slow");                
           });
        }

    </script>
Run Code Online (Sandbox Code Playgroud)