2010.09.06——— jquery ajax后 事件失效的问题
2010.09.06——— jquery ajax后 事件失效的问题
参考:http://topic.csdn.net/u/20100409/19/18ceb8e2-5c7a-46cd-b5ea-5097a24341ca.html
$(function(){
$("#tblSort01 a").click(function(){
var qybm = $(this).attr("qybm");
window.open("${pageContext.request.contextPath}/queryJBXX.action?qybm="+qybm);
return false;
});
}
给元素绑定click事件 ,但是遇到一个问题 就是 当我执行一些ajax请求后 这个click事件就失效了
比如说 我的分页是一个ajax请求 但我点下一页时 后生成的元素a就没有了click事件了
其实 原因很简单
ajax加载内容是在$(document).ready()之后的操作,这个时候给绑定函数的时候,找到的元素集合中还不包括ajax加载的内容,所以原来的没有问题,后加载的就没有绑定
解决方法 有两个 :
1. 在ajax请求成功之后重新绑定
2. 用live方法
$("#tblSort01 a").live("click",function(){
var qybm = $(this).attr("qybm");
window.open("${pageContext.request.contextPath}/queryJBXX.action?qybm="+qybm);
return false;
});
两种方法适用在不同的场合
如果是处理事件的话 可以用live
如果是其他一些处理方法的 live就不支持 只能重新绑定