js短时间内防止触发事件

需求: 点击a标签弹出 msg信息框提示 2秒后消失, 如何在短时间内多次点击a的时候msg信息框始终显示(不闪动), 且最后一次点击a 2秒后msg信息框始终消失, 给出思路或部分代码就可以了2017-8-26 11:11:32

阅读 3.3k
4 个回答

自己解决了

$(function () {
    var st;
    $('.d1').on('click', function() {
        var _this = $(this);
        _this.addClass('on');
        clearTimeout(st);
        st = setTimeout(function() {
            _this.removeClass('on');
        }, 1e3);
    });
});
var flag = true;
function () {
    if (flag) {
        flag = false;
        layer.msg(msg,{time:2000,end:function () {
            flag = true;
        }});
    }
}

再多说一句,直接提需求让人家给你代码的人,都是辣鸡

每次点击,都清空当前定时器,并重新计时

var timer;
var showDialog = function(){
    if( $('.dialog').css('diplay')=='none' ){
        $('.dialog').show();
    }
    timer && clearInterval(timer);
    timer = setInterval(function(){
        $('.dialog').hide();
    })
}
$('.show').on('click', function(){
    showDialog();
})

每次点击都清空计时器就好了.

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