在我的 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/