与打字稿反应:onmouseup 和 onmousedown 无法识别左键单击

React with typescript: onmouseup and onmousedown not recognizing left click

我有一段简单的代码,它应该在按下鼠标时将 mousePressed 变量设置为 true,并在松开鼠标时将其重置。我发现它适用于右键单击和中键单击,但不适用于左键单击。 event.which returns 2 和 3 分别用于中键和右键单击。我错过了什么?有没有办法用 onclick() 获得相同的行为?我正在使用与打字稿的反应。

    const canvasElement = document.createElement("canvas");
    canvasElement.onmousedown = (event: MouseEvent) => {
        console.log(event.which);
        console.log("Mouse pressed");
        console.log(this.mousePressed);
        this.mousePressed = true;
    };
    //this.onmouseDown;
    canvasElement.onmouseup =  (event: MouseEvent) => {
        console.log(event.which);
        console.log("Mouse unpressed");
        console.log(this.mousePressed);
        this.mousePressed = false;
    };

这有效:

    canvasElement.addEventListener("pointerdown", this.onmouseDown.bind(this));
    canvasElement.addEventListener("pointermove", this.recordCoordinates.bind(this));
    canvasElement.addEventListener("pointerup", this.onmouseUp.bind(this));

您之前提供的代码可以正常工作:https://jsfiddle.net/ktq1oda6/

打开 fiddle 上的控制台,您应该会看到正确的 which

您的应用程序中可能有其他内容可以吸引点击。确保你没有在任何地方打电话 e.stopPropogation

编辑:我看到了您的新解决方案。您的代码中可能有其他原因导致了问题,但很高兴您修复了它。