仅点击一次区域

时间:2015-09-01 00:30:32

标签: javascript

我有一堆地图区域,每次点击它们都会增加一个值。我需要他们只能点击一次。我在这里看过几个帖子,但我尝试过的所有帖子都没有用。我最近的努力是下面这个。请仅协助使用javascript。

    <map name="m__r30_c11" id="m__r30_c11">
<area shape="poly" coords="12,-5,-19,-25,-32,-19,-48,-4,-55,24,-34,46,-13,53,13,35,19,6" alt="" onclick="MM_nbGroup('down','navbar27','n_r29_c6','images/_r29_c6_s4.jpg','n_r29_c11','images/_r29_c11_s4.jpg','n_r30_c11','images/_r30_c11_s4.jpg',1); incrementValue(); this.disabled=true;">
</map>

如果可能的话,我需要在onclick上工作的东西,因为它们不是所有的地图区域

否则,我可以以某种方式禁用incrementValue函数中该区域的onclick吗?我尝试过但无法解决问题。

    function incrementValue()
{
var value = parseInt(document.getElementById('score').value);
value = isNaN(value) ? 0 : value;
value++;
document.getElementById('score').value = value;
}

2 个答案:

答案 0 :(得分:1)

尝试this.onclick='';而不是this.disabled=true;根据需要移除onclick,没有点击没有响应点击。

答案 1 :(得分:1)

假设您要保留内联onclick语法,您可以使用以下内容在第一次单击后将onclick设置为null,以便后续点击不再触发任何内容:

onclick="incrementValue(); this.onclick=null;"

在您的代码中,它看起来像这样:

<map name="m__r30_c11" id="m__r30_c11">
<area shape="poly" coords="12,-5,-19,-25,-32,-19,-48,-4,-55,24,-34,46,-13,53,13,35,19,6" alt="" onclick="MM_nbGroup('down','navbar27','n_r29_c6','images/_r29_c6_s4.jpg','n_r29_c11','images/_r29_c11_s4.jpg','n_r30_c11','images/_r30_c11_s4.jpg',1); incrementValue(); this.onclick=null;">
</map>

以下是此方法的实时演示应用于标准HTML按钮:

function incrementValue() {
    /* Your other code here */
    alert("this only happens once");
}
<button id="thebutton" onclick="incrementValue(); this.onclick=null;">Click</button>

相关问题