0

如何使该功能每个按钮只运行一次?如果点击“点击我”只有效一次,其他按钮也一样。
为了不放太多代码,我放了一个例子..:http: //jsbin.com/apexod/2/edit

<input type="button" value="click me" onclick="hello('Jhon')"><br>
<input type="button" value="click me1" onclick="hello('Gerard')"><br>
<input type="button" value="click me2" onclick="hello('Kaoru')">
<script>
function hello(id){
    alert("hello "+id);
}
</script>
4

3 回答 3

4

一种解决方案是注册已单击的按钮:

<script>
var done = {}
function hello(id){
   if (done[id]) return;
   done[id] = 1; 
   alert("hello "+id);
}
</script>

(另一种方法是使用 jQuery 之类的实用程序库及其一个功能,但这将是矫枉过正)

于 2012-12-08T13:24:10.713 回答
3

您可以将按钮元素引用发送给函数,并从按钮中删除事件:

<input type="button" value="click me" onclick="hello(this,'Jhon')"><br>
<input type="button" value="click me1" onclick="hello(this,'Gerard')"><br>
<input type="button" value="click me2" onclick="hello(this,'Kaoru')">
<script>
function hello(el, id){
    alert("hello " + id);
    el.onclick = null;
}
</script>

演示:http: //jsfiddle.net/Guffa/CDjGY/

于 2012-12-08T13:35:27.467 回答
1

执行后,您可以使用空函数覆盖该函数

function hello(){
     alert("hello " + id);
     hello = function(){}
}
于 2012-12-08T13:40:46.767 回答