jQuery--解决单击和双击的冲突问题
更新:HHH   时间:2023-1-7


今天,在帮组里做一个bottom navigation(底部的导航条),样式如下:

单击不会产生任何问题,快速单击两次可能就有问题了。为了解决这个问题,查了一下网上的资料。知道为了防止快速双击所产生的问题,必须要想办法“屏蔽”连续双击中的一次。如果双击,我们可以只是忽略后面一次单击。JS window的 setTimeout(function(){},**ms) 和 clearTimeout(var timer) 派上了用场。

 

  1. var click=0;
  2.  //show toolbar and hide the 'show' button 
  3.  $("span.showbar a").click(function() { 
  4.    click++; 
  5.    if(click===1){ 
  6. var timeout_2=window.setTimeout(function(){ 
  7. $('#toolbar').slideToggle('slow');$('#toolbarbut').fadeOut('fast');click=0;},500); 
  8.    }else
  9. window.clearTimeout(timeout_2); 
  10. click=0; 
  11.  }); 

如果在500ms内,就产生了第二次点击,那么第二次点击我们不做处理,直接触发执行第一次的

处理函数。clearTimeout的意思就是“不要延迟,直接执行了”。

这样子,就解决了问题。:)

 

 

返回web开发教程...