jquery - 第二次单击 updatePanel 内的按钮,事件不会在 jQuery 中触发

标签 jquery asp.net-ajax updatepanel autopostback

在我的 aspx 文件中,我有:

<asp:UpdatePanel ID="UpdatePanel3" UpdateMode="Always" runat="server">
    <ContentTemplate>
       <asp:Button ID="Button1" runat="server" Text="Button" />
    </ContentTemplate>
</asp:UpdatePanel>

在我的 JavaScript 文件中,我有:

$('#ctl00_ContentPlaceHolder1_Button1').click(function (e) {
        alert('hello');
    });

但只有第一次单击按钮时,我才收到 alert('hello'),之后就不再有任何警报消息。

最佳答案

对于动态内容,请使用 jQuery 的 .live()方法。

$('#ctl00_ContentPlaceHolder1_Button1').live('click', function (e) {
    alert('hello');
});

此外,我建议使用类而不是 ID。使用 ID 很容易受到影响 ASP.NET 容器/控件结构的任何代码更改的影响:

<asp:Button ID="Button1" runat="server" Text="Button" class="performsMyClickAction" />

$('.performsMyClickAction').live('click', function (e) { ... }

关于jquery - 第二次单击 updatePanel 内的按钮,事件不会在 jQuery 中触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3424951/

相关文章:

asp.net - ASP.NET Rich UI-您使用什么?

c# - UpdatePanel 停止 Javascript 工作

ASP.NET UpdatePanel 超时

javascript - ASP.NET UpdatePanel 阻止 jQuery slider 更新

jquery - SimpleModal 确认并继续原始 href

javascript - 如果重叠,则在窗口中重新定位 div

c# - 为什么 Ajax.BeginForm 在 Chrome 中不起作用?

ajax - 传统:true option and false in Ajax call?和有什么不一样

php - SEO 友好的术语语法

jQuery $().each 而不是 $.each()