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上的,当点击页面元素时,首先会触发文档,在冒泡到具体的元素上面,也就无需给新添加的元素解绑再增加事件这一步操作。
1 回答862 阅读✓ 已解决
1 回答1.1k 阅读
2 回答781 阅读
2 回答627 阅读
2 回答607 阅读
1 回答687 阅读
2 回答528 阅读
一般ajax加载的页面都是用事件委托来处理吧,你把现有的监听改成委托形式就行了。