单击时将功能限制为仅绘制一次
Limiting function to drawing only once when clicking
我有一个点击事件,它只需要运行一次函数,但每次点击鼠标时,我都会传播它。我知道这是因为每次点击画布上的图像时,事件都在寻找,但我如何让它只检测到一次点击事件来运行这个特定的功能?我需要制作一个完全独立的点击事件吗?
$("#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。否则返回。
相关文章:
- Javascript返回值只在循环中返回一次
- Jquery FadeIn FadeOut 只工作一次
- Javascript html每点击一次就会更改url
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- jQuery滚动功能只工作一次
- 刷新导致我的帖子“;张贴“;再一次
- 引导程序崩溃一次只能看到一个
- 有没有一个抽象层,这样我就可以集成一次,然后使用pusher、pubnub或faye
- 加载器组件仅加载一次
- 根据Angular.JS上一次的内容禁用选择
- 一次又一次地在新的和相同的选项卡中打开一个url
- 只在宽度以下和宽度以上各准备一次
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- Angularjs:空对象,当只有一次点击时
- 单击时将功能限制为仅绘制一次
- 如何只重新绘制一次饼图,而不是为它的每个数据标签绘制一次
- 如何一次一个滚动绘制每个SVG路径(按时间顺序)
- 我如何一次在画布上绘制多个矩形
- D3.js一次绘制每个点