缘由:
数据量比较大,分页显示,页码是自己写的,动态创建页码,创建元素时会绑定元素的click事件,每次显示五个页码(1,2,3,4,5),点击2—4不换,点5,页码变成3,4,5,6,7。
遇到的问题:
每次点击页码都会先empty页码容器,然后如果没到点击“5”,将数组中的页码元素重新append到容器中,此时元素的click事件就会失效。
原因:
经过查询jQuery的文档,jQuery的empty和remove事件在执行时,为了避免内存泄漏会先移除子元素的数据和事件处理函数,然后移除子元素,所以导致创建的元素虽然未被销毁,但是其绑定的事件都会被移除。
解决办法:
jQuery提供了一种解决办法,使用detach方法,该方法并非真正移除元素,而是隐藏元素;如果需要移除元素,只能重新绑定元素的事件