当用户单击时,我有下面的代码对表列“创建日期”进行排序。
请注意,“ 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
});
Run Code Online (Sandbox Code Playgroud)
这工作正常。现在我有一个弹出窗口,可以使用下面的代码添加注释,它添加注释,然后刷新注释的父 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();
});
};
});
Run Code Online (Sandbox Code Playgroud)
问题是刷新父 DIV 后,事件“ $("#IntNote_CreatedDate").on("click", function()”不再识别或不再起作用。不知何故,它不再执行,没有错误。
请告知如何刷新父窗口 DIV 并仍然保留事件“ $("#IntNote_CreatedDate").on("click", function()”的工作原理。
您需要使用 .on() 的委托版本并将其附加到您的 div 的父级。沿着这条线的东西应该是接近的:(未测试)
$(document).on("click", "#IntNote_CreatedDate", function(){.....});
Run Code Online (Sandbox Code Playgroud)
基本上,您当前的版本附加到页面加载时存在的 dom 对象。当您的 div 被重写时,它会丢失事件。通过为您的元素附加一个带有选择器的父级,您是说要为我的任何与该选择器匹配的子级现在或将来运行此事件。
阅读文档的“直接和委托事件”部分:http : //api.jquery.com/on/
| 归档时间: |
|
| 查看次数: |
2760 次 |
| 最近记录: |