`

JS和JQuery实现单击和双击示例

阅读更多

一:原理: 

先看一下点击事件的执行顺序: 

单击(click):mousedown,mouseout,click; 
双击(dblclick):mousedown,mouseout,click , mousedown,mouseout,click,dblclick; 

在双击事件(dblclick),触发的两次单击事件(click)中,第一次的单击事件(click)会被屏蔽掉,但第二次不会。也就是说双击事件(dblclick)会返回一次单击事件(click)结果和一次双击事件(dblclick) 结果。而不是一次双击事件(dblclick)结果和两次单击事件结果(click)。 

如此这般的话,只需消灭掉多余的一次单击事件(click),这个问题就解决了。 

setTimeout 

 

二:代码: 

Jquery实现:

//定义setTimeout执行方法 
var TimeFn = null; 

$('div').click(function () { 
// 取消上次延时未执行的方法 
clearTimeout(TimeFn); 
//执行延时 
TimeFn = setTimeout(function(){ 
//do function在此处写单击事件要执行的代码 
},300); 
}); 

$('div').dblclick(functin () { 
// 取消上次延时未执行的方法 
clearTimeout(TimeFn); 
//双击事件的执行代码 
}) 

 Js实现:

<input type="button" onclick="aa()" ondblclick="bb()" value="点我">
<script language="javascript">
var isdb;
function aa(){
    isdb=false;
    window.setTimeout(cc, 500)
    function cc(){
        if(isdb!=false)return;
        alert("单击")
    }
}
function bb(){
    isdb=true;
    alert("双击")
}
</script>

 

分享到:
评论

相关推荐

    基于jquery实现的鼠标左中右键单双击及拖拽和滚轮事件插件原型

    本篇文章将深入探讨如何基于jQuery实现一个功能丰富的鼠标事件插件,包括左键、中键、右键的单击、双击、拖拽事件,以及滚轮事件。 首先,我们来看标题提及的"基于jquery实现的鼠标左中右键单双击及拖拽和滚轮事件...

    鼠标双击或触摸双击事件检测jQuery插件

    这在移动设备上尤为重要,因为单击和双击事件在触摸屏设备上的处理方式与鼠标设备不同,这个插件很好地解决了这一问题。 **二、工作原理** 1. **鼠标双击检测**:对于鼠标设备,jQuery-doubleTap监听连续的两次...

    Jquery日历控件fullCalendar中将dayClick改为双击或单击事件的方法

    在JavaScript和jQuery的世界里,fullCalendar是一款非常流行的开源日历插件,它允许开发者创建功能丰富的交互式日程管理界面。在使用fullCalendar时,我们可能会遇到需要自定义用户交互行为的需求,比如将默认的“日...

    jquery单击事件和双击事件冲突解决方案

    本文将详细阐述如何解决jQuery中单击事件和双击事件之间的冲突问题,并提供示例代码,帮助开发者理解并在实际项目中应用。 ### 解决方案 为了解决单击和双击事件的冲突,我们可以通过设置一个定时器(setTimeout)...

    jQuery仿Windows桌面点击双击代码.zip

    本示例中的"jQuery仿Windows桌面点击双击代码.zip"是一个基于jQuery实现的项目,它旨在模仿Windows操作系统桌面的行为,包括单击和双击事件处理以及右键菜单的显示与编辑操作功能。下面我们将深入探讨这个项目的相关...

    js jq 单击和双击区分示例介绍

    在JavaScript和jQuery中,事件处理是用户与网页交互的核心部分,而单击(click)和双击(dblclick)事件则是常见的用户交互行为。本文将详细介绍如何区分和处理这两种事件,以及提供一个实用的示例。 单击事件...

    FullCalendar扩展双击事件

    本文将深入探讨如何在FullCalendar中实现双击事件功能,包括源码修改和扩展方法,以兼容不同版本。 ### 1. 源码版双击事件 在源码版FullCalendar中添加双击事件功能,你需要直接修改FullCalendar的核心代码。首先...

    JS实现鼠标单击与双击事件共存

    在示例代码中,首先引入了jQuery库,利用jQuery的bind方法,分别给按钮绑定了单击和双击事件的监听器。在单击事件的监听器中,首先使用clearTimeout函数取消之前可能存在的延时执行,然后通过setTimeout函数设置了一...

    Jquery flexigrid插件 添加checkbox,(双击事件)onRowDblclick

    Flexigrid是一款基于jQuery的强大的数据网格插件,它提供了丰富的功能,如分页、排序、搜索和自定义列。在开发web应用时,我们经常需要处理大量的表格数据,这时Flexigrid就能派上用场,它使得数据显示更加灵活且...

    双击自动滚屏

    开发者可以通过开源社区分享这类工具,比如在给定的博文链接(由于实际链接无法访问,这里仅作为示例)中,作者可能详细介绍了如何实现这个功能,并提供了源码供其他开发者学习和使用。 总结来说,“双击自动滚屏”...

    jquery实现垂直手风琴导航栏

    在网页设计中,导航栏是页面布局的重要组成部分,它帮助用户快速访问网站的不同部分。而垂直手风琴导航栏是一种节省空间的交互式...对于初学者来说,这是一个很好的实践项目,有助于提高JavaScript和jQuery的实战技能。

    jquery展开收回控制及箭头指向切换

    至于压缩包内的文件,它们可能包含HTML文件(展示示例的结构和内容)、CSS文件(定义样式,包括箭头的形状和翻转效果)以及JavaScript文件(实现jQuery的逻辑)。通过这些文件,我们可以更深入地理解并实现这个功能...

    jquery.jstree 增加节点的双击事件代码

    对于想要实现双击节点打开编辑页面功能的开发者来说,这篇文档提供了实现思路和具体代码示例。 在使用jstree插件时,开发者还需要注意事件的使用,比如"select_node.jstree"的事件应当被正确理解和利用。有时,可能...

    jquery 编辑table实例

    本教程将深入探讨如何使用 jQuery 实现表格(table)的编辑功能,包括“一行编辑”和“双击编辑单元格”两种常见实例。 **一、一行编辑** 1. **创建HTML结构**:首先,我们需要一个基本的HTML表格结构,包含表头...

    jQuery JSON动态获取表格数据代码.zip

    4. 对于双击事件,可以通过.on('dblclick')来实现,其处理逻辑与单击事件类似,但可能需要调整折叠和关闭的逻辑。 最后,"说明.htm"可能是对整个功能的详细文档,而"jiaoben5191.js"可能是包含上述所有逻辑的...

    JQuery常用属性说明

    Ajax(异步JavaScript和XML)允许在不刷新整个页面的情况下与服务器交换数据并更新部分网页内容。 1. `load(url, [data], [callback])`: 用于将远程HTML内容加载到DOM节点。例如,`$("#feeds").load("feeds.html")`...

    jquery.imagemapster

    - 引入 jQuery 库和 jQuery.imagemapster 文件(`jquery.imagemapster.js` 或压缩版的 `jquery.imagemapster.min.js`)。 - 在 HTML 中定义 `&lt;img&gt;` 和 `&lt;map&gt;` 元素。 - 使用 JavaScript 初始化 imagemapster,...

    jquery-easyui

    EasyUI的Tree组件支持单击、双击事件,可以扩展节点、收缩节点,还能添加图标和自定义操作按钮,提供良好的用户体验。 “panel”组件则类似于一个容器,可以用来包装其他内容,比如文本、表格或表单。Panel具有标题...

    jQuery事件之鼠标事件

    jQuery作为一款流行的JavaScript库,极大地简化了这些交互的处理方式。本文将重点介绍jQuery中与鼠标相关的事件及其用法。 #### 二、鼠标事件概述 根据给定的描述,“鼠标事件是在用户移动鼠标光标或者使用任意...

    JQuery zTree v3.5.14

    2. **交互性**:用户可以通过单击、双击、拖放等方式与树节点进行交互,实现节点的展开、折叠、选择、取消选择等操作。 3. **多级结构**:zTree支持无限层级的树状结构,可以方便地展示层次分明的数据。 4. **节点...

Global site tag (gtag.js) - Google Analytics