javascript - Jquery Click 事件在回发后不起作用

标签 javascript c# jquery asp.net

脚本:

 $(document).ready(function() {
        $('#<%=txtfranchisecode.ClientID %>').change(function() {

            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "CreditLimit.aspx/databind",
                data: '{Code: ' + $('#<%=txtfranchisecode.ClientID%>').val() + '}',
                dataType: "json",
                success: function(data) {

                    for (var i = 0; i < data.d.length; i++) {

                        $('#<%=tbDetails.ClientID %>').append("<tr><td><b>Name:</b></td><td>" + data.d[i].Name + "</td></tr><tr><td><b>Address:</b></td><td>" + data.d[i].Address + "</td></tr><tr><td><b>phone:</b></td><td>" + data.d[i].Phone + "</td></tr><tr><td><b>Email:</b></td><td>" + data.d[i].Email + "</td></tr><tr><td><b>Branch:</b></td><td>" + data.d[i].branch + "</td></tr>");


                    }
                    $('#<%=panel.ClientID %>').dialog("open");
                },
                error: function(result) {
                    alert("Error");
                }
            });

        });

    });

我在我的页面上使用了更新面板。它在我第一次使用时工作,但在回发后不起作用(在文本框更改事件后面我有一些服务器端计算)

通过谷歌我得到了这个链接Click me我尝试过但没有用 我该怎么办?

已编辑:尝试使用“Amresh Kumar Singh”解决方案

<script>
    $(function() {
        $('#<%=panel.ClientID %>').dialog({
            autoOpen: false,
            show: {
                effect: "blind",
                duration: 1000
            },
            hide: {
                effect: "explode",
                duration: 1000
            },
            buttons: [{
                text: "Ok",
                click: function() {
                    $(this).dialog("close");
                }
}]
        });



    });
</script>
<script>
  function BindData() {

        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "CreditLimit.aspx/databindbyId",
            data: '{Code: ' + $('#<%=ddlname.ClientID%>').val() + '}',
            dataType: "json",
            success: function(data) {

                for (var i = 0; i < data.d.length; i++) {

                    $('#<%=tbDetails.ClientID %>').append("<tr><td><b>Name:</b></td><td>" + data.d[i].Name + "</td></tr><tr><td><b>Address:</b></td><td>" + data.d[i].Address + "</td></tr><tr><td><b>phone:</b></td><td>" + data.d[i].Phone + "</td></tr><tr><td><b>Email:</b></td><td>" + data.d[i].Email + "</td></tr><tr><td><b>Branch:</b></td><td>" + data.d[i].branch + "</td></tr>");


                }
                $('#<%=panel.ClientID %>').dialog("open");
            },
            error: function(result) {
                alert("Error");
            }
        });
    }

C#:

 protected void Page_Load(object sender, EventArgs e)
    {
        ddlname.Attributes.Add("OnChange", "BindData();");
    }

第一次它运行良好,但下次它抛出和异常:

Error: cannot call methods on dialog prior to initialization; attempted to call method 'open'

最佳答案

King Fisher 你不能让它工作,因为文档准备在加载过程中只调用一次,所以我们可以在每次页面加载时加载 jquery 函数

将 jquery 函数放入函数中

<script>
function MainFunction(){
 $('#<%=txtfranchisecode.ClientID %>').change(function() {

            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                url: "CreditLimit.aspx/databind",
                data: '{Code: ' + $('#<%=txtfranchisecode.ClientID%>').val() + '}',
                dataType: "json",
                success: function(data) {

                    for (var i = 0; i < data.d.length; i++) {

                        $('#<%=tbDetails.ClientID %>').append("<tr><td><b>Name:</b></td><td>" + data.d[i].Name + "</td></tr><tr><td><b>Address:</b></td><td>" + data.d[i].Address + "</td></tr><tr><td><b>phone:</b></td><td>" + data.d[i].Phone + "</td></tr><tr><td><b>Email:</b></td><td>" + data.d[i].Email + "</td></tr><tr><td><b>Branch:</b></td><td>" + data.d[i].branch + "</td></tr>");


                    }
                    $('#<%=panel.ClientID %>').dialog("open");
                },
                error: function(result) {
                    alert("Error");
                }
            });

        });
}

</script>

并在后端页面加载中添加此代码

ScriptManager.RegisterStartupScript(this, this.GetType(), GetUID(), "MainFunction();", true);

这个函数也在后端aspx页面中用于每次生成新 key

  public string GetUID()
    {
        return Guid.NewGuid().ToString("N");
    }

关于javascript - Jquery Click 事件在回发后不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27522326/

相关文章:

javascript - 我的 jQuery Ajax 无法与 PHP 配合使用

javascript - 复制和移动脚本

javascript - Grunt Shell 输出到其他任务

javascript - jquery scroll 无法监听脚本文件中的事件

C#:未在 Socket.BeginReceive 上调用 AsyncCallback

javascript - 工具提示中的元素高度问题

javascript - jQuery.closest() 给出 "null"值

javascript - Jquery 条形码扫描仪集成

c# - EF6 异常 : DbExpressionBinding requires an input expression with a collection ResultType

c# - 发送邮件失败,邮箱不可用