我有一张图片。 我附加了onclick监听器和onmouseout监听器。 onclick listener做parent.removeChild(this)操作。 图像消失了。直到我移动鼠标才会发生任何事情。然后触发onmouseout处理程序。 它甚至可能吗? 而且,我假设不是通过传播,因为在父元素上没有附加到onmouseout上。
处理程序:
function ballMouseoutHandler(e) {
event.stopPropagation();
this.src = ballSrc;
alert('mouse out!');
}
function ballMouseoverHandler() {
this.src = ballInvSrc;
}
function ballClickHandler() {
gameBalls.removeChild(this);
}
代码添加图片:
gameBalls = document.getElementById('balls-col');
var tmpBall = createBall();
gameBalls.appendChild(tmpBall);
tmpBall.addEventListener('click', ballClickHandler);
tmpBall.addEventListener('mouseover', ballMouseoverHandler);
tmpBall.addEventListener('mouseout', function(e) {ballMouseoutHandler(e);});
function createBall() {
var ball = new Image();
ball.src = ballSrc;
ball.classList.add('ball');
return ball;
}
它是更大代码的一部分。所以到目前为止我所做的是我提取特定问题以分离较小的文件。它看起来似乎已经触发了鼠标输出事件。
答案 0 :(得分:1)
行。经过一些测试后,我可以说是 - 从鼠标指针下删除DOM对象会触发onmouseout事件。如果你认为这是相当逻辑的,因为移动是相对的,重要的是鼠标指针在对象上,现在它已经出局了。 :)
所以我要做的就是在删除对象之前删除事件监听器 。