移除event.preventDefault()
- 如果一个事件中有时需要调用
event.preventDefault()
取消浏览器默认事件,有时又不需要调用 - 比如自定义滚动条,当滚动条还没有滚动到最顶端或者最底端时,需要调用
event.preventDefault()
取消浏览器默认事件,不然会出现自定义滚动条和最外层document的滚动条同时滚动 - 而当滚动条滚动到最顶端或者最底端时,自定义滚动条已经不能滚动了,则需要让最外层document的滚动条滚动,便需要移除
event.preventDefault()
-
解决方法便是取消当前事件的绑定,示例代码:
var f=function(e) { // ... // 滚动到最大最小时,重新绑定事件,相当于移除preventDefault if(that.current >= that.maxCurrent || that.current <= 0){ that.wrapEl.off("mousewheel DOMMouseScroll", f).on("mousewheel DOMMouseScroll", f); }else{ e.preventDefault(); } } this.wrapEl.on("mousewheel DOMMouseScroll", f); // 给dom添加滚动事件