代码改变世界

ajax更新数据后,jquery、jq失效问题(事件丢失)

2011-03-17 14:06  focusdada  阅读(610)  评论(0)    收藏  举报
刚开始遇到这个问题异常头疼,最后只能竟可能的更新标签内的Content,使得标签本身不受影响...

-------------------------------------------------------------------------------------------

给元素绑定click事件 ,但是遇到一个问题 就是 当我执行一些ajax请求后 这个click事件就失效了 

比如说 我的分页是一个ajax请求 但我点下一页时 后生成的元素a就没有了click事件了 

其实 原因很简单 

ajax加载内容是在$(document).ready()之后的操作,这个时候给绑定函数的时候,找到的元素集合中还不包括ajax加载的内容,所以原来的没有问题,后加载的就没有绑定 

解决方法 有两个 : 

1. 在ajax请求成功之后重新绑定 
2. 用live方法

<script type="text/javascript">
<!--
jQuery(document).ready(
function(){
jQuery(
".brand li img").live('click',function(){

jQuery(
this).parents("li").find("ul").slideToggle();
});
});
-->
</script>

两种方法适用在不同的场合 

如果是处理事件的话 可以用live 
如果是其他一些处理方法的 live就不支持 只能重新绑定