我在 StackOverflow 上看到了其他一些解决方案,但我特别好奇为什么这突然不起作用。一点背景... 我们仍在使用 jQuery 1.7.1,并且我们正在尝试修补插件和页面,这些插件和页面不适用于较新版本的 jQuery。目前,我正在使用 1.8.3 进行测试。这是问题:
我在 UpdatePanel 中有一个网格,在 TemplateField 中有按钮。每个按钮都有一个分配给它的类,当点击...时会弹出一个模式。这在我将 .live 事件放入 document.ready 的 1.7.1 下完美运行。升级到 1.8.3,我摆脱了 live() 并使用 on(),所有这些都在 document.ready 中。
每当我在网格上分页时,都会触发异步回发并且 .on() 会丢失。我所做的唯一更改是升级到 1.8.3。并将 live() 更改为 on()。这以前有效。为什么我突然不能这样做了。下面的示例代码:
$(document).ready(function () {
$("#AppDialog").dialog({
bgiframe: true,
autoOpen: false,
height: 400,
width: 650,
modal: true,
resizable: false }
});
$(".AppEdit").on("click", function (e) {
e.preventDefault();
$("#AppDialog").dialog('open');
});
});
按钮位于 UpdatePanel 中网格中的 TemplateField 内:
<asp:Button ID="btnEdit" runat="server" Text="Edit" CommandName="EditApp" CssClass="AppEdit" />
任何想法为什么会这样?我不想使用 pageLoad,那么我最好的选择是什么?