【问题标题】:Html button action only on first click仅在第一次单击时执行 Html 按钮操作
【发布时间】:2013-08-07 13:23:49
【问题描述】:

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

重要的是 - 单选按钮仍然可能会更改。但行动必须只做一次。

这行不通

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

【问题讨论】:

  • 您可以使用布尔值或 removeEventListener。

标签: php html button onclick action


【解决方案1】:

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

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

(为了更简洁,您可以将其包装在 IIFE 中,如下例所示)

Demonstration

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      如果你更喜欢 jQuery,你可以使用 jQuery unbind

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

      HTML

      <button> Some content </button>
      

      【讨论】:

      • 这个问题没有jQuery。
      【解决方案4】:

      你可以使用一个属性来禁用按钮一旦被点击,添加

      disabled="disabled"
      

      点击一次按钮?

      【讨论】:

      • 但我想更改值。所以按钮不能被禁用。只需执行一次操作。
      • 好吧,我猜 Javascript 的答案会更适合你
      【解决方案5】:

      为了解决这个问题,我使用了 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/

      【讨论】:

      • 这需要jQuery,OP没有提到。
      猜你喜欢
      • 2016-06-17
      • 1970-01-01
      • 2023-02-10
      • 1970-01-01
      • 1970-01-01
      • 2021-02-14
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多