我有以下代码对表格列进行排序"创建日期"用户点击时。
请注意" 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()
"作品。
答案 0 :(得分:2)
您需要使用.on()的委托版本并将其附加到div的父级。这方面的内容应该很接近:(未经测试)
$(document).on("click", "#IntNote_CreatedDate", function(){.....});
基本上您当前的版本附加到页面加载时存在的dom对象。当您的div被重写时,它会丢失该事件。通过使用元素的选择器附加到父元素,您可以说现在或将来为我的任何与选择器匹配的子节点运行此事件。
阅读"直接和委派活动"文件部分: http://api.jquery.com/on/