首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

JavaScript 技巧篇-js增加延迟时间解决单击双击事件冲突,双击事件触发单击事件

js 的单双击事件同时存在会有一个问题:双击事件会同时触发单击事件,两个事件存在冲突。 我们加一个延迟时间就能很好的解决这个问题。...原理: 当接收到第一个点击时,我们先把单击事件存储在这个是全局变量 click_store 里,如果 0.3 秒内没有接收到双击事件,就去执行它,如果接收到了,我们把它清理掉,然后去执行双击事件。...var click_store // 定义一个全局变量存储单击触发事件 document.addEventListener('click', deal_click); document.addEventListener...('dblclick', deal_dblclick); function deal_click(e){ click_store = setTimeout(function(e){ // 单击触发事件...,0.3s延迟 ... },300); } function deal_dblclick(e){ // 单击事件清理 clearTimeout(click_store); // 双击触发事件

6.1K30

前端学习(52)~事件委托

我们希望,只绑定一次事件,即可应用到多个元素上,即使元素是后来添加的。 因此,比较好的方法就是把这个点击事件绑定到他的父层,也就是 ul 上,然后在执行事件函数的时候再去匹配判断目标元素。..."> window.onload = function() { // 获取父节点,并为它绑定click单击事件。...false 表示事件在冒泡阶段触发(默认) document.getElementById('parent-list').addEventListener('click'...当子节点被点击的时候,click事件会从子节点开始向父节点冒泡。...换而言之,参数为false,说明事件是在冒泡阶段触发(子元素向父元素传递事件)。而父节点注册了事件函数,子节点没有注册事件函数,此时,会在父节点中执行函数体里的代码。

51610
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    双击事件(dblclick)时,不触发鼠标按下(mousedown) 动作事件

    两者的区别是,mouseenter事件只触发一次,而只要鼠标在节点内部移动,mouseover事件会在子节点上触发多次。...在单击的时候(也就是鼠标按下的时候)不会执行双击,但是双击的时候会执行两次单击再执行双击事件。 解决的思路:要想双击时不执行单击事件,就使用定时器清除掉两个单击事件,留下一个双击事件。...time=0, 也会添加一个任务队列。那么time=0与time=200有什么区别呢? 因为第一次单击事件后,主线程没有任何任务,就会立马执行这个单击事件的任务。...待第二次单击的时候,假设距离第一次单击事件是150ms, 如果你的定时器小于150ms, 那么第一次的任务队列就会执行完。...第一次单击任务不执行了,是被定时器延时,然后第二次点击的时候给清除了。那么第二次点击事件呢? 在两次单击之后,会立马执行一个双击事件,双击事件的一开头就把这个第二次点击事件给清除了。

    74020

    10-移动端开发教程-移动端事件

    在前端的移动Web开发中,有一部分事件只在移动端产生,如触摸相关的事件。接下来给大家简单总结一下移动端的事件。 1....touchmove事件会多次重复触发,由于移动端计算资源宝贵,尽量保证事件节流 var i = 1; var box...如何用户的手指从触屏设备的边缘移出了触屏设备,也会触发 touchend 事件。 touchend 事件的 target 也是与 touchstart 的 target 一致,即使已经移出了元素。...一次完整的touch事件的触发顺序和过程 2.5 touchcancel事件 ​ 当触点由于某些原因被中断时触发。...tap: 手指碰一下屏幕会触发 longTap: 手指长按屏幕会触发 singleTap: 手指碰一下屏幕会触发 doubleTap: 手指双击屏幕会触发 5.2 swipe类事件 滑动事件,有swipe

    6.8K80

    JavaScript(十二)

    换句话说,在单击按钮的同时,你也单击了按钮的容器元素,甚至也单击了整个页面。 事件流描述的是从页面中接收事件的顺序。...类似地,只有触发两次 click 事件,才会触发一次 dblclick 事件。如果有代码阻止了连续两次触发 click 事件,那么就不会触发 dblclick 事件了。...,会重复触发此事件。...按下 Esc 键也会触发这个事件 keyup: 当用户释放键盘上的键时触发 有一个文本事件: textInput,这个事件是对 keypress 的补充,用意是在将文本显示给用户之前更容易拦截文本。...事件委托利用了事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。例如,click 事件会一直冒泡到 document 层次。

    2.9K20

    JavaScript 开发者需要了解的15个 DevTools 技巧

    单击任何 JavaScript 文件,未使用的代码会用红条突出显示。 5. 找到DOM更改代码 当事件被触发时,很难确定哪个函数负责更新特定的 HTML DOM 元素。...DevTools 允许脚本被黑盒化,因此即使你选择进入调试器的某个函数,它们也不会在调试器中打开。...使用条件断点 单击 Sources 面板中打开的文件的行号会添加一个断点。它会在执行到这一行的时候暂停脚本,这样你可以单步执行代码来检查变量,调用堆栈等。...断点有的时候并不好用,例如,如果在运行 1000 次的循环的最后一次循环报错了。这时你可以添加一个条件断点,让它仅在满足特定条件时才触发断点,例如 i > 999 。...这些请求会显示在 DevTools Network 面板中,可以使用 XHR 按钮进行过滤。 DevTools 显示了很多信息,但是有时你需要重新运行一次 Ajax 调用。

    4.9K20

    杨老师课堂之Jquery的筛选,事件,效果,Ajax,javascript跨域)

    trigger()触发所有的事件(包括浏览器默认的) triggerHandler()触发所有的事件(不包括浏览器默认的) 事件冒泡 1.什么是冒泡 案例介绍 之所以称之为冒泡,是因为事件会按照...事件冒泡可能会引起预料之外的效果,上例中,本来只想触发元素 的click事件,然而 元素和元素的click事件也同时被触 发了.因此有必要对事件的作用范围进行限制.当单击元素时,只 触发元素的click...事件,而不触发 和元素上的 click事件.当单击 元素时,只触发 元素上的click事件, 而不触发元素上的click事件....; event.stopPropagation();//停止冒泡事件 }) 当单击span元素时,只会触发span元素上的click事件,而不会触发 div元素和body元素的click事件....可以用同样的方法解决 元素上的问题 阻止默认行为 网页中的元素都有自己默认的行为,例如:单击超链接后悔跳转,单击”提交”按钮会表单会提交,有时需要阻止元素的默认行为 在jquery中,提供了preventDefault

    8.3K20

    10-移动端开发教程-移动端事件

    在前端的移动Web开发中,有一部分事件只在移动端产生,如触摸相关的事件。接下来给大家简单总结一下移动端的事件。 1....touchmove事件会多次重复触发,由于移动端计算资源宝贵,尽量保证事件节流 var i = 1; var box...2.4 touchend事件 ​ 当用户的手指抬起的时候,会触发 touchend 事件。如何用户的手指从触屏设备的边缘移出了触屏设备,也会触发 touchend 事件。...一次完整的touch事件的触发顺序和过程 2.5 touchcancel事件 ​ 当触点由于某些原因被中断时触发。...tap: 手指碰一下屏幕会触发 longTap: 手指长按屏幕会触发 singleTap: 手指碰一下屏幕会触发 doubleTap: 手指双击屏幕会触发 5.2 swipe类事件 滑动事件,有swipe

    6.4K70

    「Web编程API」- 03

    键盘触发事件的话,会得到键盘的相关信息,如按了哪个键。 事件对象的使用 事件触发发生时就会产生事件对象,并且系统会以实参的形式传给事件处理函数。...常情况下terget 和 this是一致的,但有一种情况不同,那就是在事件冒泡时(父子元素有相同事件,单击子元素,父元素的事件处理函数也会被触发执行),这时候this指向的是父元素,因为它是绑定事件的元素对象...没有兼容性问题 return false; } 1.3.7 阻止事件冒泡 事件冒泡本身的特性,会带来的坏处,也会带来的好处。...1.3.8 事件委托 事件冒泡本身的特性,会带来的坏处,也会带来的好处。...事件委托的作用 我们只操作了一次 DOM ,提高了程序的性能。 动态新创建的子元素,也拥有事件。 知否知否,点我应有弹框在手!

    1.4K50

    前端成神之路-WebAPIs03

    事件对象的使用 事件触发发生时就会产生事件对象,并且系统会以实参的形式传给事件处理函数。 所以,在事件处理函数中声明1个形参用来接收事件对象。 ?...常情况下terget 和 this是一致的, 但有一种情况不同,那就是在事件冒泡时(父子元素有相同事件,单击子元素,父元素的事件处理函数也会被触发执行), 这时候this指向的是父元素,因为它是绑定事件的元素对象...没有兼容性问题 return false; } 1.3.7 阻止事件冒泡 事件冒泡本身的特性,会带来的坏处,也会带来的好处。...1.3.8 事件委托 事件冒泡本身的特性,会带来的坏处,也会带来的好处。 什么是事件委托 把事情委托给别人,代为处理。 事件委托也称为事件代理,在 jQuery 里面称为事件委派。...事件委托的原理 ​ 给父元素注册事件,利用事件冒泡,当子元素的事件触发,会冒泡到父元素,然后去控制相应的子元素。 事件委托的作用 我们只操作了一次 DOM ,提高了程序的性能。

    3K20

    jQuery:详解jQuery中的事件(一)

    当然使用传统的JavaScript也能完成这些交互,但是jQuery增加兵扩展了基本的事件处理机制。jQuery不仅提供了更加优雅的事件处理语法,而且极大的增强了事件处理能力。   ...(){ //code... }   多次调用: window.onload方法是不能被多次调用的,因为JavaScript的onload事件一次只能保存对一个函数的引用,它会自动用后面的函数覆盖前面的函数...,所以即使将上面代码中的window.load赋值两次,也只会执行后面的函数。...所以如果想达到两个函数顺序触发的效果,只能使用下面的方法来实现——也即再创建一个新的JavaScript方法,JavaScript代码如下: window.load = function(){ func1...第二个参数是可选参数,作为event.data属性值传递给事件对象的额外数据对象。第三个参数则是用来绑定的处理函数。举个实际的例子,下面网页中,单击“标题”链接将显示内容。

    1.7K20

    WEB入门之十四 jQuery事件

    这是因为DOM事件一次只能绑定一个函数。...图5.1.10 hover事件 5.3.2 toggle事件 该事件用于模拟鼠标的连续单击事件,第1次单击时触发第1个函数的执行;第2次单击时触发第2个函数的执行;第n次单击时触发第n个函数的执行。...假设给所有的文本框通过bind绑定了鼠标单击事件,然后再动态创建一个文本框,此时绑定的鼠标单击事件对这个新创建的文本框无效;但是如果使用live进行绑定,那么新创建的文本框也会绑定鼠标单击事件。...一次移除多个事件,中间用空格隔开 $("p").die("click mouseover"); //移除段落元素的鼠标单击事件和鼠标悬浮事件 5.4.3 on和off on是jQuery 1.7版本中新增的函数...一次移除多个事件,中间用空格隔开 $("p").off("click mouseover"); //移除段落元素的鼠标单击事件和鼠标悬浮事件 5.5 模拟触发事件 大多数时候,事件都是由用户通过操作鼠标和键盘来触发的

    8110

    简单说 JavaScript中的事件委托(上)

    事件委托 是什么 先来看看事件委托的概念 事件委托就是利用事件冒泡,只指定一个事件处理程序,就可以管理某一类型的所有事件。 事件委托,你叫他 事件代理 也可以,都是一个意思。...,给父元素 ul 绑定单击事件 ul.onclick = function (e){ //这里的e 就是event对象 //target属性 返回触发此事件的元素...2、第一段绑定了两次事件,第二段绑定了一次事件 也就是说,原来在 li 上绑定的事件,现在委托在了父元素 ul 上,而在 ul 上只需要绑定一次就可以了。...,但是这样如果元素改变多次,就要元素渲染一次,就绑定一次事件,显然是有点麻烦了。...,给父元素 ul 绑定单击事件 ul.onclick = function (e){ //这里的e 就是event对象 //target属性 返回触发此事件的元素

    59620

    WEB入门之十四 jQuery事件

    函数执行了,这是因为DOM事件一次只能绑定一个函数。...图5.1.10 hover事件 5.3.2 ​toggle事件​ 该事件用于模拟鼠标的连续单击事件,第1次单击时触发第1个函数的执行;第2次单击时触发第2个函数的执行;第n次单击时触发第n个函数的执行...假设给所有的文本框通过bind绑定了鼠标单击事件,然后再动态创建一个文本框,此时绑定的鼠标单击事件对这个新创建的文本框无效;但是如果使用live进行绑定,那么新创建的文本框也会绑定鼠标单击事件。...一次移除多个事件,中间用空格隔开 $("p").die("click mouseover"); //移除段落元素的鼠标单击事件和鼠标悬浮事件 5.4.3 ​on和off​ on是jQuery 1.7...一次移除多个事件,中间用空格隔开 $("p").off("click mouseover"); //移除段落元素的鼠标单击事件和鼠标悬浮事件 5.5 模拟触发事件 大多数时候,事件都是由用户通过操作鼠标和键盘来触发的

    12910

    JavaScript小技能:事件

    JavaScript 在不同环境下使用不同的事件模型:不同的编程环境下的事件机制是不同的,比如JavaScript 网页上的事件机制不同于在其他环境中的事件机制。...(x); alert(y); } btn.addEventListener('click', bgChange); 大多数事件处理器的事件对象都有可用的标准属性和函数(方法),一些更高级的处理程序会添加一些专业属性...侦听事件发生的结构称为事件监听器(Event Listener),响应事件触发而运行的代码块被称为事件处理器(Event Handler)。...; } 通过DOM Level 2 Events 函数 addEventListener()关联事件处理器 (只支持到 Internet Explorer 9) 可以在一个元素上多次调用addEventListener...注:网络事件不是 JavaScript 语言的核心——它们被定义成内置于浏览器的 JavaScript APIs。

    1.4K10

    XSS跨站脚本攻击剖析与防御

    ,恶意JavaScript代码会直接在受害者主机上的浏览器执行。...它的特点是只在用户单击时触发,而且只执行一次,非持久化,所以称为反射型跨站式脚本。...参数中,并且时刻要求用户单击方可触发,稍微有点安全意识的用户可以轻易看穿链接是不可信任的。...如下为持久型XSS的一个案例:当攻击者在留言框内输入恶意JavaScript代码并提交后,其他用户再浏览这个页面时,就会发生持久型XSS攻击,如图所示:持久型XSS不需要用户去单击URL进行触发,所以他的危害比反射型...一些常见的可能造成问题的字符的HTML编码如表所示:3、JavaScript编码这条原则主要针对动态生成的JavaScript代码,这包括脚本部分以及HTML标签的事件处理属性(如onerror, onload

    47830

    【Web前端】系统中正在发生的“事件”

    事件是在你编写的程序中发生的特定行为,系统会传递这些事件的信息,以便你的代码能够做出相应的反应。举个例子,当用户在网页上点击一个按钮时,你可能希望通过弹出一个信息框来回应这一操作。 什么是事件?...; }; ​​onclick​​事件处理器在用户单击按钮时被触发,随后通过 ​​alert()​​​ 函数显示一条消息。...; }); 这个例子中,单击按钮将依次触发两个不同的事件处理程序。...实际上,网页中使用的 JavaScript 事件模型与其他环境下的 JavaScript 事件模型也存在差异。...Python:像 Tkinter 和 PyQt 框架也实现了事件驱动的编程范式,允许定义和处理事件。 C#:使用 .NET 的事件模型,允许定义事件并在某些条件下触发相应的事件处理程序。

    7510
    领券