在对象中时未触发Javascript mousemove事件
我希望你做得很好。 我的问题是: 此代码工作正常:在对象中时未触发Javascript mousemove事件,javascript,events,scope,mousemove,Javascript,Events,Scope,Mousemove,我希望你做得很好。 我的问题是: 此代码工作正常: var imageMover = { mouseDown: function(e) { e.target.addEventListener("mousemove", mouseMoved, false); console.log('mouseDown'); }, mouseUp: function(e) { e.target.removeEventListener("mou
var imageMover = {
mouseDown: function(e) {
e.target.addEventListener("mousemove", mouseMoved, false);
console.log('mouseDown');
},
mouseUp: function(e) {
e.target.removeEventListener("mousemove", mouseMoved, false);
console.log('mouseUp');
}
};
function mouseMoved(e) {
console.log("mouseMoved");
}
而这一条不是:
var imageMover = {
mouseDown: function(e) {
e.target.addEventListener("mousemove", this.mouseMoved, false);
console.log('mouseDown');
},
mouseUp: function(e) {
e.target.removeEventListener("mousemove", this.mouseMoved, false);
console.log('mouseUp');
},
mouseMoved: function(e) {
console.log("mouseMoved");
}
};
给你一点背景:有一些缩略图你可以点击。
当您单击它时,图像将添加到容器中,并且mouseUp和mouseDown事件将添加到图像中。
当有人点击图片时,我希望事件mouseMouve被附加,这样我就可以跟踪图片的位置
mouseUp和mouseDown连接良好,触发良好,但mouseMouve仅在不在imageMover对象内时才起作用。
这似乎是一个范围问题,但我不明白为什么会这样
提前,非常感谢 this from this.mouseMoved引用的是事件目标,它是DOM元素,而不是存储方法的对象
var-imageMover={
mouseDown:函数(e){
log('this is reference=>',this);
e、 target.addEventListener(“mousemove”,this.mouseMoved,false);
}
};
document.querySelector('.container').addEventListener('mousedown',imageMover.mousedown)代码>
.container
{
宽度:500px;
高度:100px;
边框:1px实心#000;
}
您如何调用imageMover
。如果您可以直接共享htmlExactly,效果会更好!谢谢。所以,我只需要用imageMover.mouseDown替换这个.mouseDown就行了。