javascript怎么让某条语句只执行一次

最近经常遇到一个问题,比如一个alert我只想让他在第一次点击的时候提示,不想他每一次点击都有用,这种用原生js要怎么做,我自己目前的方法比较傻,就是点击的时候赋值一次,这样下次点击就没用了,但是应该有更好的办法吧?

var c = 0;
function(){
    if (c=0) {
        c = 1;
        alert();
    }
}
阅读 18.7k
7 个回答

原生js 新增了很多 dom 的操作 api, 其中就包含了只触发一次,现在这样写即可

document.querySelector('.btn')
.addEventListener('click',()=>alert('我只出现一次'),{once:true})

可以用jQueryone方法,$.one('click', callback)

function once(){
    //do something
  once = undefined
}
document.body.addEventListener("click", function(){
    var isClick = false;
    return function(){
        if(isClick === false){
            // ...do some thing
            
            isClick = true;
        }
    };
}());

触发点击事件后解绑该事件即可。

你把点击事件给空就行了 DOM.onclick = null

function once(fn, context) { 
    var result;

    return function() { 
        if(fn) {
            result = fn.apply(context || this, arguments);
            fn = null;
        }

        return result;
    };
}

// Usage
var canOnlyFireOnce = once(function() {
    console.log('Fired!');
});

canOnlyFireOnce(); // "Fired!"
canOnlyFireOnce(); // nada

REF:
JavaScript Once Function

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏