最近工作中在页面需要用到addEventListener
但是有另外一个需求是需要将以上的'touchmove'恢复为默认的。开始我直接使用removeEventListener,但是不起作用。后来发现如果要让removeEventListener成功的话需要把里面function单独封装成一个方法。
把操作封装成一个单独的方法,调用时引用同一个方法,listener才能准确找到。如果直接写在参数里,会认为是两个function(e)是不同的操作,所以不能remove成功。
document.addEventListener('touchmove', function(e) { e.preventDefault(); }, false);
但是有另外一个需求是需要将以上的'touchmove'恢复为默认的。开始我直接使用removeEventListener,但是不起作用。后来发现如果要让removeEventListener成功的话需要把里面function单独封装成一个方法。
function preventDefault(e) { e.preventDefault(); };
document.addEventListener('touchmove', preventDefault, false);
document.removeEventListener('touchmove', preventDefault, false);
把操作封装成一个单独的方法,调用时引用同一个方法,listener才能准确找到。如果直接写在参数里,会认为是两个function(e)是不同的操作,所以不能remove成功。