以下皆为jquery。
在写ajax过程中,经常要局部刷新一个网页,比如load一个div之类,如果ajax刷新里面有按钮之类需要绑定js事件的话,就会发现在ajax刷新之前绑定的事件都已经失效了,即使id或者class没变。
上面说的其实也有问题,在ie8或这chrome(不止这两个,因为我暂时用这两个测试)如果class或者id一样,ajax之后事件还在。但是firefox之中却丢失了。(个人碰到,不知是不是个案。)
解决方法:
- 重新绑定。(虽然可以,但是事件一多就很麻烦了)。
- 把比如 $().click(fun.....) 的写法改成$().live('click',fun......)。
文章来源:http://blog.xujif.com/archives/ajax-js-reload-jquery/