$(this).attr("disabled", "disabled");
$(this).removeAttr("disabled");

解决方案 »

  1.   

    并不是真正的button,用的是超链接触发的click事件
      

  2.   


    var lastClick;
    function lockClick() {
        var nowClick = new Date();
        if (lastClick == null) {
            lastClick = nowClick;
            return false;
        } else {
            if (Math.round((nowClick.getTime() - lastClick.getTime())) > 500) {
                lastClick = nowClick;
                return true;
            }
            else {
                lastClick = nowClick;
                return false
            }
        }
    }
    function aaa() {
         if (lockClick()) {
              //调用后台插入
         }else{
              //页面input的数值修改
         }
    }
    只是想询问一下有没有更好的方法或者插件能够实现这样的事情
      

  3.   

    如果点击一直特别快,则
    Math.round((nowClick.getTime() - lastClick.getTime())) > 500 永远不成立,那岂不是一直不会“调用后台插入”?
      

  4.   

    你可以这样! 发生click事件后,移除click事件,向按钮绑定mousedown事件,如果在不允许的时间内发生了mousedown事件,则从新将原有click事件绑定到元素上。若超过了不允许事件发生了mousedown事件,则执行任务代码!jQueryObject.click(function() {
            //解除绑定的click事件
            //绑定mousedown事件
            jQueryObject.mousedown(function(){
                    if(规定时间内发生了mousedown事件) {
                         //解除绑定的mousedown事件
                         //绑定click()事件
                    } else {
                            //执行想要的操作
                    }
            })
    });
      

  5.   

    你不可能避免计算两次点击的时间差,这是我的代码,作为参考吧$('body').on('click',function(){
    var that=$(this);
    that.data('rt',(new Date).getTime());
    setTimeout(function(){var d=(new Date).getTime(); if(d-that.data('rt')>500) console.log('后台执行')},501);
    })