如何使该功能只运行一次JS

时间:2012-12-08 13:22:33

标签: javascript events

如何使每个按钮只运行一次该功能? 如果“点击我”中的点击只能使用一次,而其他按钮则相同 为了不放太多代码,我举了一个例子......: 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>

3 个答案:

答案 0 :(得分:4)

解决方案是注册点击的按钮:

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

(另一种方法是使用像jQuery这样的实用程序库及其one函数,但这样做会有点过头了)

答案 1 :(得分: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/

答案 2 :(得分:1)

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

覆盖该函数
function hello(){
     alert("hello " + id);
     hello = function(){}
}