鍍金池/ 問答/HTML5  HTML/ js中怎么讓綁定的click事件只觸發(fā)一次呢?

js中怎么讓綁定的click事件只觸發(fā)一次呢?

項(xiàng)目需求 讓js綁定的事件 只觸發(fā)1次~

回答
編輯回答
悶油瓶

var kaiguan=1;
onclick=function(){
if(kaiguan){

  alert('執(zhí)行第一次操作');
  kaiguan = 0;

}
}

2018年8月29日 01:59
編輯回答
做不到

可以封裝一下多處使用

function one(fn) {
    var flag = true;
    return function () {
        if (flag) {
            flag = false;
            fn.apply(this, arguments)
        }
    }
}

document.getElementById("btn").onclick = one(function(e) {
    console.log(e)
    console.log(this);
})
2018年6月17日 16:32
編輯回答
誮惜顏

如果只是簡單的點(diǎn)擊一次后面就不執(zhí)行click事件的話,可以設(shè)置個(gè)flag或者點(diǎn)擊以后移除事件。如果你的需求是點(diǎn)擊以后再次進(jìn)入頁面也不能點(diǎn)擊執(zhí)行了,這里最好就通過發(fā)請(qǐng)求,通過后端返回的數(shù)據(jù)來判斷是否可以點(diǎn)擊來進(jìn)行控制。

2018年3月27日 16:17
編輯回答
巫婆

用 jQuery 的話,可以用 .one(),文檔在此

2017年8月25日 23:37
編輯回答
嫑吢丕
    var btn = document.getElementById('btn');
    // 添加事件綁定
    btn.addEventListener('click', btnClick, false);

    // 按鈕點(diǎn)擊方法
    function btnClick() {
      console.log('hello');
      // 刪除事件綁定
      btn.removeEventListener('click', btnClick, false);
    }

個(gè)人建議點(diǎn)擊以后刪除綁定的事件才是最靠譜的

2017年12月29日 14:20
編輯回答
清夢(mèng)
<button id="btn">按鈕</button>
<script>
    function test () {
        if(this.clickTimes<1) {
            alert('點(diǎn)擊第:【 ' + this.clickTimes + ' 】次');
            
            this.clickTimes++;
        }else {
            alert('已經(jīng)點(diǎn)過一次了,不做任何操作');
        }
    }
    
    var oBtn = document.getElementById('btn');
    
    // 記錄此按鈕點(diǎn)擊次數(shù)
    oBtn.clickTimes = 0;
    
    // 為此按鈕綁定事件
    oBtn.onclick = test;
</script>
2018年2月22日 03:17
編輯回答
忘了我
<input type="button" id="btn" value="點(diǎn)擊">

<script>
    function one(elm, event, fn) {
        function todo() {
            fn();
            elm.removeEventListener(event, todo);
        }
        elm.addEventListener(event, todo);
    }

    var btn = document.getElementById('btn');
    one(btn, 'click', function () {
        alert('只執(zhí)行一次');
    })
</script>
2017年1月11日 16:27
編輯回答
背叛者
<input type="button" value="按鈕" />
<script>
document.querySelector('input[type="button"]').onclick = function() {
  alert(this.value);
  this.onclick = null;
};
</script>
2017年12月9日 03:06
編輯回答
尐懶貓
var _ = true;
el.onclick = function() {
    if(!_) return;
    // your code
    _ = false;
}
2018年7月12日 23:15