仅在第一次单击时执行Html按钮操作


Html button action only on first click

我可以在点击html按钮时设置操作。但我只需要在第一次点击时设置操作。有办法做到这一点吗?按钮是单选形式的。可能是一些javascript?

重要的是,单选按钮仍然可能被更改。但行动只能做一次。

不起作用

function myfunction(i){
oForm = document.forms["myform"];
if(oForm.elements["field"+i].checked)
    alert("action done earlier");
else
    action
}

最干净的解决方案可能是使用removeEventListener来…删除事件侦听器:

var myButton = document.getElementById('someId');
var handler = function(){
   // doSomething
   myButton.removeEventListener('click',handler);
}
myButton.addEventListener('click', handler);

(为了使其更干净,您可以将其封装在IIFE中,如下例所示)

演示

查看jQuery.one()事件处理程序。

$("#my-button").one('click', function() {
    /* Do something at most once */
});

如果您首选jQuery,则可以使用jQuery解除绑定

$("button").click(function(){
  /* some content */
  $(this).unbind('click');
});

Html

<button> Some content </button>

单击按钮后,您可以使用属性禁用按钮,添加

disabled="disabled"

点击按钮?

为了解决这个问题,我使用了jQuery.on和jQuery.off-请参阅我在jsfiddle上的代码!

$(document).ready(function() {
    var button = $('#my-button');
    function onClick() {
        alert('clicked');
        button.off('click', onClick);
    };
    button.on('click', onClick);
});

http://jsfiddle.net/VxRyn/