我有一个需要只运行一次函数的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);
}
}
}
}
})
答案 0 :(得分:0)
一个选项是添加一个最初为false的布尔值,检查点击处理程序中的布尔值是否为false。如果为false,则运行您的函数并将其设置为true。别的回归。