限制单击时仅绘制一次的功能

时间:2015-03-16 20:13:27

标签: javascript jquery

我有一个需要只运行一次函数的click事件,但每次点击鼠标时我都会传播。我知道这是因为每次点击画布上的图像时都会查找该事件,但是如何使其仅检测一次点击事件以运行此特定功能?我是否需要完全单独的点击事件?

$("#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);
                }
            }
        }
    }
})

1 个答案:

答案 0 :(得分:0)

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