防止双击图像映射区域

时间:2013-10-02 15:13:35

标签: javascript jquery html double-click

我有一个基本图像地图,当点击区域时执行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>

2 个答案:

答案 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版本解释了一些其他选项。