在jQuery的事件绑定中,如果元素同时绑定了单击事件(click)和双击事件(dblclick),那么执行单击事件(click)时,不会触发双击事件(dblclick), 执行双击事件(dblclick)时却会触发两次单击事件(click)。
但有时候我们希望在执行双击事件的时候不去出发单击事件,那究竟该如何实现呢?
少bb 上代码 :
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <button>按钮</button> <script src="jquery.js"></script> <script> $(function () { // var time = null; // // $('div').click(function () { // // 取消上次延时未执行的方法 // clearTimeout(time); // //执行延时 // time = setTimeout(function(){ // //do function在此处写单击事件要执行的代码 // },300); // }); // // $('div').dblclick(functin ({ // // 取消上次延时未执行的方法 // clearTimeout(time); // //双击事件的执行代码 // }); // 单双击 的时间 间隔 是300ms // 如果解决 单双击冲突 var timer = null; $('button').click(function(event) { clearTimeout(timer); // 定时器 300ms 一次性定时器 timer = setTimeout(function(){ console.log('单机了'); }, 300); }); $('button').dblclick(function(event) { clearTimeout(timer); console.log('双机了'); }); }) </script> </body> </html>