首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >removeEventListener不从变量工作

removeEventListener不从变量工作
EN

Stack Overflow用户
提问于 2017-04-13 21:05:32
回答 1查看 100关注 0票数 0

短querySelector

代码语言:javascript
复制
function __(el){
  return document.querySelectorAll(el);
};

vars实例

代码语言:javascript
复制
img = _('.thumbnail img'),
    canvas = _('#cs')

它已被更新,以显示

代码语言:javascript
复制
img.addEventListener('mousemove', function colorCatcher(e){

spin = document.getElementsByClassName('spin');
parts = spin[0].className.split('-');
if(parts[4] == 'left'){
  preview = __('.stripes'),x = '',y = '';  
}else{
  preview = _('.strike-through'),x = '',y = '';  
}


  if(e.offsetX) {
    x = e.offsetX;
    y = e.offsetY; 
  }


  else if(e.layerX) {
    x = e.layerX;
    y = e.layerY;
  }


useCanvas(canvas,img,function(){

    var p = canvas.getContext('2d')
    .getImageData(x, y, 1, 1).data;

    if(preview.length == 2){
      preview[0].style.background = rgbToHex(p[0],p[1],p[2]);
      preview[1].style.background = rgbToHex(p[0],p[1],p[2]);
    }else{
      preview.style.background = rgbToHex(p[0],p[1],p[2]);
    }
  });
}, false);

我不知道如何在上面做removeEventListener。

我试过这样的东西:

代码语言:javascript
复制
img.removeEventListener('mousemove', img.colorCatcher, false);
document.removeEventListener('mousemove', img.colorCatcher, 
window.removeEventListener('mousemove', img.colorCatcher, false);

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-13 21:09:50

您不必在removeEventListener上指定目标--在这种情况下,应该是:

代码语言:javascript
复制
img.removeEventListener('mousemove', colorCatcher, false);

另一件事是在IE和Safari中,您需要指定完全相同的addEventListener签名,否则事件不会被删除,所以如果您将事件添加为:

代码语言:javascript
复制
// Added as
img.addEventListener('mousemove', colorCatcher, false); 
// Should be removed as
img.removeEventListener('mousemove', colorCatcher, false);

// Added as
img.addEventListener('mousemove', colorCatcher); 
// Should be removed as
img.removeEventListener('mousemove', colorCatcher);

编辑

您需要确保定义了您的函数,例如:

代码语言:javascript
复制
function colorCatcher(){
  // Actions here
}

// Added as
img.addEventListener('mousemove', colorCatcher, false); 
// Should be removed as
img.removeEventListener('mousemove', colorCatcher, false);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43401706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档