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

时间:2016-02-23 21:48:30

标签: jquery

我有以下代码对表格列进行排序"创建日期"用户点击时。
请注意" IntNote_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
    });

这很好用。现在我有一个popUp窗口,用下面的代码添加注释,然后添加注释,然后刷新注释的Parent 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").on("click", function()"不再认识或工作了。不知何故,它不再执行,没有错误。

请告知我如何刷新父窗口DIV并仍然保留事件" $("#IntNote_CreatedDate").on("click", function()"作品。

1 个答案:

答案 0 :(得分:2)

您需要使用.on()的委托版本并将其附加到div的父级。这方面的内容应该很接近:(未经测试)

$(document).on("click", "#IntNote_CreatedDate", function(){.....});

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

阅读"直接和委派活动"文件部分: http://api.jquery.com/on/