jQuery有什么办法可以重新绑定整个页面的事件?
我用 ajax 方式加载了另外一个页面,但是那个页面有非常多需要重新绑定的东西了,我该怎么办...
jQuery有什么办法可以重新绑定整个页面的事件?
我用 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
上的,当点击页面元素时,首先会触发文档,在冒泡到具体的元素上面,也就无需给新添加的元素解绑再增加事件这一步操作。
10 回答11.2k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
一般ajax加载的页面都是用事件委托来处理吧,你把现有的监听改成委托形式就行了。