单击时将功能限制为仅绘制一次

Limiting function to drawing only once when clicking

本文关键字:绘制 一次 功能 单击      更新时间:2023-09-26

我有一个点击事件,它只需要运行一次函数,但每次点击鼠标时,我都会传播它。我知道这是因为每次点击画布上的图像时,事件都在寻找,但我如何让它只检测到一次点击事件来运行这个特定的功能?我需要制作一个完全独立的点击事件吗?

$("#schematic_holder").on("click", function(ev){
    var x = ev.pageX;
    var y = ev.pageY;
    for(var img in images){
        var img_x = images[img].dest_x;
        var img_y = images[img].dest_y;
        var img_w = images[img].width;
        var img_h = images[img].height;
        if((x > img_x) && (x < img_x + img_w)){
            if((y > img_y) && (y < img_y + img_h)){

这是我只想调用一次的函数,但基本上已经创建了一个无限循环,这是我不想要的。

                if(images[img].name == "Landing Gear Handle"){
                    drawImages(images[img].src, images[img].name, images[img].position_2.x, images[img].position_2.y, images[img].width, images[img].height, images[img].position_2.dest_x, images[img].position_2.dest_y, images[img].width, images[img].height, images[img].position_2.scale_x, images[img].position_2.scale_y);
                }
            }
        }
    }
})

一个选项是添加一个最初为false的布尔值,在单击处理程序中检查该布尔值是否为false。如果它是false,那么运行您的函数并将其设置为true。否则返回。