2013-09-24 159 views
0
$(document).ready(function() { 
    $(".voteMe").one('click', function (event) { 
       event.preventDefault();   
      //my stuff 

$(this).prop('disabled', true); 
     }); 
    }); 

上面的代码是允许单击鼠标click.but它不允许下一次单击我的意思是下一次单击鼠标它假设双击。我最后的结论是我想要让所有的单次点击和DIS允许双击(当过消费者进入双击它,将只需要一次点击只)如何防止双击鼠标(一次)

+0

这会有用....请检查 http:// stack overflow.com/questions/6330431/jquery-bind-double-click-and-single-click-separately –

+0

你的问题没有意义。只要不将任何事情绑定到双击事件。 – Archer

回答

-1

然后,您应该取消绑定双击:

$('.voteMe').unbind('dblclick'); 
+0

一个存在;见http://api.jquery.com/one/ –

+0

使用'one'是他只能点击一次的原因。 – Archer

+0

我的不好,这就是为什么我说我认为,很好学习新的东西 – aleation

-2

Jquery bind double click and single click separately

var DELAY = 700, clicks = 0, timer = null;

$(文件)。就绪(函数(){

$("a") 
.live("click", function(e){ 

    clicks++; //count clicks 

    if(clicks === 1) { 

     timer = setTimeout(function() { 

      alert('Single Click'); //perform single-click action 

      clicks = 0; //after action performed, reset counter 

     }, DELAY); 

    } else { 

     clearTimeout(timer); //prevent single-click action 

     alert('Double Click'); //perform double-click action 

     clicks = 0; //after action performed, reset counter 
    } 

}) 
.live("dblclick", function(e){ 
    e.preventDefault(); //cancel system double-click event 
}); 

});

+1

为什么使用删除方法live()? –

+0

检查此链接http://jsfiddle.net/KpCwN/4/ –

+0

我不明白,我应该在你提供的jsfiddle中看到什么? –

0

可以使用setTimeout()功能,防止在处理程序的执行在指定的时间段:

$(".voteMe").on('click', function (event) { 
    if ($(this).hasClass('clicked')) return; 

    var $this = $(this).addClass('clicked'); 
    setTimeout(function() { $this.removeClass('clicked'); }, 500); 

    // ... 
}); 
+0

感谢您的朋友,它工作正常。但有时它会允许双击也设置超时1000 – user2750450

+0

@ user2750450那么,这不应该发生逻辑上,你能提供一个演示? – undefined

0

试试这个:

$(document).ready(function() { 
    $(".voteMe").one('click', function (event) { 
      event.preventDefault();   
     //my stuff 

     $(this).prop('disabled', true); 

     $(".voteMe").unbind("click"); 
    }); 
}); 
1

使用以下代码

$(".voteMe").click(function (e) { 
     if ($(this).hasClass('clicked')) return; 
     $(this).addClass('clicked'); 
     setTimeout(function() { $(this).removeClass('clicked'); }, 500); 

    });