首页 > 其他 > 详细

防止事件重复提交代码

时间:2015-06-01 12:59:54      阅读:216      评论:0      收藏:0      [点我收藏+]
var _timer = {};
function delay_till_last(id, fn, wait) {
    if (_timer[id]) {
        window.clearTimeout(_timer[id]);
        delete _timer[id];
    }

    return _timer[id] = window.setTimeout(function() {
        fn();
        delete _timer[id];
    }, wait);
}

////////////////////////////////////
$el.on(‘click‘, function() {
    delay_till_last(‘myclick‘, function() {
        // run something
    }, 500);
});
这个写法可以保证只有最后一次点击被触发,方法就是后一次事件会覆盖前一次事件,如果超过指定时间还没有新的事件,就执行最后一个事件

delay_till_last()这个函数是我在前端很常用的函数,用在用户可能密集输入的场合下,比如文本框持续输入,等到输入完毕再开始检查

$input.on(‘keypress‘, function() {
    // 用户停止输入300ms后开始检查
    delay_till_last(‘check_input‘, function() {
        // 检查文本框内容是否正确
    }, 300);
});

 

防止事件重复提交代码

原文:http://www.cnblogs.com/itshark/p/4543588.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!