Jquery 重新加载后,DIV中的事件不起作用

Jquery 重新加载后,DIV中的事件不起作用,jquery,Jquery,我有下面的代码,可以在用户单击时对表列“创建日期”进行排序。 请注意,“IntNote\u CreatedDate”是表TH标记的ID var f_CreatedDate = 1; $("#IntNote_CreatedDate").on("click", function() { //alert("Hey"); f_CreatedDate *= -1; var n = $(this).prevAll().length;

我有下面的代码,可以在用户单击时对表列“创建日期”进行排序。
请注意,“
IntNote\u CreatedDate
”是表TH标记的ID

    var f_CreatedDate = 1;
    $("#IntNote_CreatedDate").on("click", function()
    {
        //alert("Hey");
        f_CreatedDate *= -1;
        var n = $(this).prevAll().length;
        sortTable("#tblIntNotes", f_CreatedDate, n); // call the sortTable function.... working fine
    });
这很好用。现在我有了一个弹出窗口来添加注释,下面是代码,它会添加注释,然后刷新注释的父DIV容器。这也很好

$(document).ready(function() {
    updateParentDIV = function() {
        var url = opener.location.href + " #refreshNotes"
        //alert("url: " + url)

        // This method works for both IE and FireFox
        window.opener.$("div#divNotes").load(
            url, function(){
            window.close();
        });
    };
});
问题是在刷新父DIV后,事件“
$(“#IntNote_CreatedDate”)。在(“单击”)上,函数()不再识别或工作。不知何故,它不再执行,也不再出错


请告知我如何刷新父窗口DIV并仍然保留事件“
$”(“#IntNote_CreatedDate”)。在(“单击”,function()
”起作用。

您需要使用.on()的委托版本并将其附加到DIV的父窗口。与此类似的内容应该很接近:(未测试)

基本上,当前版本会附加到加载页面时存在的dom对象。当重写div时,它会丢失事件。通过使用元素选择器附加到父级,可以说现在或将来为我的任何与选择器匹配的子级运行此事件

阅读文档中的“直接和委托事件”部分:

您需要使用.on()的委托版本,并将其附加到div的父级。与此类似的内容应该很接近:(未测试)

基本上,当前版本会附加到加载页面时存在的dom对象。当重写div时,它会丢失事件。通过使用元素选择器附加到父级,可以说现在或将来为我的任何与选择器匹配的子级运行此事件

阅读文档中的“直接和委托事件”部分:

是否检查了弹出窗口的DOM中是否存在事件委派?是否检查了弹出窗口的DOM中是否存在事件委派?快速提问。为了安全起见,我是否应该始终使用“委派版本的.on()”对于我将来的所有事件?看起来此方法适用于现在和将来,哪一种更好。始终使用“委托版本的.on()”有什么缺点吗?就像性能比直接事件慢一样?@Milacay我根本没有测试过它,但我想在代理版本中可能会有一些额外的开销。在大多数情况下可能不足以引起注意。我想文档中还提到了一些代理无法工作的特殊情况。总的来说,我可能会使用e委托,除非我注意到问题。快速问题。为了安全起见,我是否应该在将来的所有事件中始终使用“委托版本的.on()”?看起来此方法适用于现在和将来,哪一种更好。始终使用“委托版本的.on()”有什么缺点吗?就像性能比直接事件慢一样?@Milacay我根本没有测试过它,但我想在代理版本中可能会有一些额外的开销。在大多数情况下可能不足以引起注意。我想文档中还提到了一些代理无法工作的特殊情况。总的来说,我可能会使用除非我注意到一个问题,否则我将删除代表。
$(document).on("click", "#IntNote_CreatedDate", function(){.....});