我有一个基本图像地图,当点击区域时执行javascript / jquery例程。目前,如果双击该区域,则DoStuff()
方法执行两次。任何人都可以提供一种方法来防止双击场景中的双重执行吗?
<img src="images/myimage.png" border="0" usemap="#Map1" />
<map name="Map1">
<area coords="5,115,97,150" href="javascript:void(0);" onclick="DoStuff()">
<area coords="104,116,199,149" href="javascript:void(0);" onclick="DoStuff()">
</map>
答案 0 :(得分:3)
使用布尔标志。
var hasBeenClicked = false;
// Your code...
if(!hasBeenClicked){
hasBeenClicked = true;
// My routine
setTimeout(function(){ // McPhelpsius's idea (wait for 1sec before we can click again)
hasBeenClicked = false; // My routine is over, we can click again
}, 1000);
} else {
// do nothing
}
答案 1 :(得分:1)
如果您使用的是jQuery,可以将其包含在Click处理程序的顶部。单击它将禁用阻止任何点击事件发生的元素。
function DoStuff() {
$('[name="Map1"]').prop('disabled', true);
//Do Stuff..
}
This根据您的jQuery版本解释了一些其他选项。