, но он игнорирует событие щелчка и печатает в консоли коринады мыши без щелчка.Как это исправить?
Это происходит из-за того, что mousemove
срабатывает всякий раз, когда вы перемещаете мышь внутри холста, и эта строка:
canvas.addEventListener("click", check(mousePos.x,mousePos.y));
вызываетфункция check()
, поэтому печатает без щелчка.
в качестве дополнительного примечания при предоставлении обратного вызова не используйте ()
, потому что это вызывает функцию, и все, что она возвращает, станет обратным вызовомвместо этого вы указываете имя функции.
canvas.addEventListener("click", check);
Поскольку вы хотите, чтобы он печатал позицию мыши при щелчке, вам не обязательно нужен mousemove
, достаточно простого события щелчка
DEMO
var canvas = document.querySelector('canvas');
canvas.addEventListener("click", function(e) {
console.log('X:' + e.clientX, 'Y:' + e.clientY);
});
canvas {
width: 200px;
height: 200px;
background: dodgerblue;
}
<canvas></canvas>