首页 文章

删除上一个事件侦听器并添加新事件侦听器

提问于
浏览
-1

我正在创建一个绘图应用程序,我试图在画布上绘制不同的形状(矩形,圆形,线条)取决于形状按钮单击 . 因此,当我附上onmousedown,onmouseup,onmousemove,在画布上说在rect形状按钮上单击然后它在画布上添加事件,当我点击说圆形按钮时它在画布上为rect和circle添加鼠标事件 . 所以我的问题是我的问题可以删除以前的事件或更改其处理程序 . 源代码https://github.com/anuj-jaryal/screenshot-chrome-extension/tree/add-cropping?files=1其chrome扩展首先在chrome扩展中设置 .

1 回答

  • 0

    解决此问题的一种更简单的方法是不更改事件侦听器 .

    使用标志,每次用户选择新形状时更改标志,并在每次单击画布时检查标记 .

    let newWeDrawing = "circle";
    
    function userChooseRect() {
        newWeDrawing = "rect"
    }
    
    function userClickedOnCanvas() {
        switch (newWeDrawing) {
            case "cirecle":
                drawCircle();
                break;
            case "rect":
                drawRect();
                break;
        }
    }
    

    或者,更好的方法是使用一些哈希表来描述不同的选项 .

    let newWeDrawing = 1;
    
    function userChooseShape(idOfShape) {
        newWeDrawing = idOfShape;
    }
    
    function userClickedOnCanvas() {
        switch (newWeDrawing) {
            case 1:
                drawCircle();
                break;
            case 2:
                drawRect();
                break;
        }
    }
    

相关问题