jQuery有什么办法可以重新绑定整个页面的事件?

jQuery有什么办法可以重新绑定整个页面的事件?
我用 ajax 方式加载了另外一个页面,但是那个页面有非常多需要重新绑定的东西了,我该怎么办...

阅读 7.6k
4 个回答

一般ajax加载的页面都是用事件委托来处理吧,你把现有的监听改成委托形式就行了。

可以使用 off事件进行解绑,之后再用on时间来进行绑定,可以试下

比如:

$(document).off("click").on("click",function(){
    console.log("hello")
});


<div id='show'></div>
$("#show").offf("click").on("click",function(){
    console.log("hello");
})
ajax请求之后
$("#show").offf("click").on("click",function(){
    console.log("world");
})
这样应该就不冲突了吧,只是说个大致思路,如果有觉的不合适,可以自己试试别的。

可以使用 off事件进行解绑,之后再用on时间来进行绑定
`
$(document).off("click").on("click",'要绑定事件的标签',function(){

console.log("hello")

})
`
这样就算是重新添加的标签也会有相应事件

$(document).on("click",'element',function(){
    so something...
})

就这样,无需off(),然后再次重新绑定。
这样做的好处是,element元素是绑定在document上的,当点击页面元素时,首先会触发文档,在冒泡到具体的元素上面,也就无需给新添加的元素解绑再增加事件这一步操作。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题