<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible" content="ie=edge" /> <title>Document</title> <style> .hello{ width: 100px; height: 100px; background-color: red; } </style> </head> <body> <!-- 原理: 针对每一次触发双击事件都会引起两次单击事件, 给单机事件添加定时器,当双击时清掉这个定时器就相当于取消了单机事件, --> <div class="hello"></div> <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script> <script> $(function() { /* 每一次触发双击事件都会引起两次单击事件 $(".hello").bind("click.a", function() { //单击事件 $("body").append("<p>click事件</p>"); }) $(".hello").bind("dblclick.a", function() { //双击事件 $("body").append("<p>dblclick事件</p>"); }) */ /* var timer=null; $(".hello").on("click.a", function() { //单击事件 clearTimeout(timer); timer=setTimeout(function(){ $("body").append("<p>click事件</p>"); },300) }) $(".hello").on("dblclick.a", function() { //双击事件 clearTimeout(timer) $("body").append("<p>dblclick事件</p>"); }) }) */ var timer=null; $(".hello").on("click dblclick", function(e) { //单击事件 console.log(e.type)//获取事件类型 console.log(e.target)//获取事件目标 if(e.type=='click'){ clearTimeout(timer) timer=setTimeout(function(){ $("body").append("<p>click事件</p>"); },300) }else if(e.type=='dblclick'){ clearTimeout(timer) $("body").append("<p>dblclick事件</p>"); } }) }) </script> </body> </html>