如何在asp:button点击后刷新jQuery事件绑定

时间:2015-01-15 13:21:35

标签: jquery asp.net

我需要一种方法来刷新这个jQuery代码:

$(".alert_info").colorbox({
    inline: true, width: "50%",
    onOpen: function () {
    }
});
点击asp按钮后

<asp:Button runat="server" ID="btnSearch" Text="Search" OnClick="btnSearch_Click" />

我尝试使用:

$(document).ready(function () {
   $(".alert_info").colorbox({
       inline: true, width: "50%",
       onOpen: function () {
       }
   });
});

它不起作用......

我尝试使用:

$(".alert_info").on("click", function () {
        $(".alert_info").colorbox({
            inline: true, width: "50%",
            onOpen: function () {
            }
        });
    });

它也没有用......

这是类.alert_info:

的输入
<a class="alert_info cboxElement" href="#alertWin10">View details</a>

3 个答案:

答案 0 :(得分:0)

当有回发或重新发布回复时,您可以重新绑定事件监听器。您应该能够在js中定位pageLoad事件。另一种选择是将所有启动代码放在(javascript)pageLoad函数中,因为只要有回发或部分回发(ajax / update pannels),就应该触发事件。

function pageLoad(sender, args) {
    //rebind events here
}

这只是我不喜欢WebForms的原因之一。

答案 1 :(得分:0)

请按照以下步骤查看问题是否已解决。

  1. 将以下代码分配给字符串

    $(document).ready(function(){    $(&#34;&.alert_info#34)。颜色框({    内联:true,width:&#34; 50%&#34;,    onOpen:function(){    } }); });

  2. 使用Scriptmanager.RegisterStartupScript并将属性值与脚本字符串一起传递,并从后面的代码中的按钮单击事件中调用它。

  3. 这将调用代码并刷新脚本。

答案 2 :(得分:0)

嗯,这最终解决了它:

$(function () {
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_endRequest(function () {
            $(".alert_info").colorbox({
                inline: true, width: "50%",
                onOpen: function () {
                    var json = $.parseJSON($(this).siblings("input[type='hidden']").first().val());

                }
            });
        });
    });

这是一个显示解决方案See "mitsbits" answer

的链接