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