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

DOM事件第二弹(UIEvent事件)

一、uitls.js(绑定事件公共类) var fixs = { 'focusin': { standard: 'focus', ie: 'focusin'...script元素上时,在Ie不支持,需要用onreadystatechange事件来代替(error会作为一个状态来传递); script的error,在ie上也是不支持的,也是通过onreadystatechange...失去焦点,不冒泡,遗留方案 3.1 代理事件的兼容处理方案 ie、opera、chrome等都支持focusin和focusout,但firefox不支持focusin和focusout。...3.3 代码触focusin事件 我们这里需要做一个兼容方案处理,在现代浏览器下需要用focus来触发,因为我们绑定是focus事件。...,是属性值发生改变就会触发,如果我们一个动作导致两个属性值改变,就会触发两次: 1 <option

2.9K90

JavaScript的事件

缺点: 1)时差问题,用户可能会在HTML元素一出现在页面上就触发相应的事件,但当时的事件处理程序有可能尚不具备执行的条件。 2)这种扩展事件处理程序的作用域链在不同浏览器中会导致不同结果。...addEventListener() 事件绑定 参数: 要绑定的事件名 作为事件处理的函数 布尔值:true在捕获阶段调用事件处理程序;false在冒泡阶段调用 removeEventListener...() 事件删除 参数: 要删除的事件名 作为事件处理的函数 布尔值:true在捕获阶段调用事件处理程序;false在冒泡阶段调用 例如: //事件绑定 var btn = document.getElementById...焦点事件 blur 元素失去焦点的时候触发 focus 元素获得焦点的时候触发,不支持冒泡 //IE支持 focusin 与focus等价,支持冒泡 focusout 与blur等价,支持冒泡 3...只有在一个元素上相继发生mousedown,mouseup事件,才会触发click事件 dblclick 双击主鼠标按钮时触发.只有在一个元素上相继触发两次click时间才会触发dbclick事件 mousedown

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

    读Zepto源码之Event模块

    读Zepto源码系列文章已经放到了github上,欢迎star: reading-zepto 源码版本 本文阅读的源码为 zepto1.2.0 准备知识 focus/blur 的事件模拟 为什么要对 focus...chrome59下, input 聚焦和失焦时,控制台会打印出如下结果: 'focus' 'focusin' 'blur' 'focusout' 可以看到,在此浏览器中,事件的执行顺序应该是 focus...> focusin > blur > focusout 关于这几个事件更详细的描述,可以查看:《说说focus /focusin /focusout /blur 事件》 关于事件的执行顺序,我测试的结果与文章所说的有点不太一样...如果存在事件代理,并且事件为 focus/blur 事件,在浏览器不支持 focusin/focusout 事件时,设置为 true , 在捕获阶段处理事件,间接达到冒泡的目的。...,设置 autoRemove 为一个函数,这个函数在句柄执行前,调用 remove 方法,将绑定在元素上对应事件解绑。

    1.5K00

    4-Jquery学习四-事件操作

    应是selector的祖辈元素,selector触发的事件可以被其祖辈元素在事件流中捕获,从而以"代理"的形式触发事件。...resize事件会在元素的尺寸大小被调整时触发。该事件常用于window对象(浏览器窗口)或框架页面。 此外,你可以为同一元素多次调用该函数,从而绑定多个事件处理函数。...事件绑定处理函数(可以绑定多个,触发时按照绑定顺序依次执行): focusin是支持冒泡的,当我们把鼠标光标放入文本框时,该事件冒泡传递到父元素p上,因此可以在p元素上触发focusin事件。...", "3px"); } ); //触发所有p元素的focusin事件 //$ps.focusin( ); // 调用不带任何参数的focusin()函数,会触发每个匹配元素的focusin事件 20...例如:你一直按住A键,直到10秒钟后才释放,只会在释放按键的时候触发一次keyup事件。 但在这个过程中会触发许多次keydown事件(或keypress事件)。

    4.5K90

    前端开发JS——jQuery常用方法

    ,只有鼠标移除区域后才生效,处理事件的过程中会有事件冒泡,这两个方法用法及其类似,所以这只介绍mouseover事件。...两者是很相似的,所以这只介绍focusin事件 方法一:$ele.focusin () focusin 无参,只是绑定一个事件,在函数里可以实现其他的绑定事件 方法二:$ele.focusin (handler...('呱唧_T_呱唧', fn) } a(); 注:focusin 强调元素聚焦;focusout强调元素失焦,无论是不是自身调用聚焦/失焦方法,都会执行函数里面有部分操作...两者是很相似的,所以这只介绍focus事件 方法一:$ele.focus () focusin 无参,只是绑定一个事件,在函数里可以实现其他的绑定事件 方法二:$ele.focus (handler(eventObject...当这两元素的文本被选中时会触发select事件 方法一:$ele.select () focusin 无参,只是绑定一个事件,在函数里可以实现其他的绑定事件 方法二:$ele.select (handler

    5K20

    关于 Chrome 浏览器中 onresize 事件的 Bug

    我在写插件时用到了 onresize 事件,在反复地测试后发现该事件在 Chrome 及 Opera(内核基本与 Chrome 相同,以下统称 Chrome)浏览器打开时就会执行,这种情况也许不能算作...Chrome 中会弹出两次 alert,而其它浏览器只会弹出一次 alert,因为 Chrome 浏览器打开时就执行了 onresize 事件。...所以现在要解决的问题就是如何让 init() 函数在 Chrome 浏览器打开时只执行一次。 这个问题看似容易却很棘手。因为只有打开浏览器时才会有这个 bug,某种程度上属于无关紧要的问题。...,至少想要从根本上也就是在 Chrome 浏览器打开时就禁止 onresize 事件是不可能的。...在这里还有一个小问题,我最初用的是高度对比,但是不知道为什么两个高度值存在偏差,大家可以将宽度改为高度测试一下,希望知道这个小问题的朋友告诉我。

    99660

    jQuery进阶前言

    前言: 在《jQuery入门》一文中,记录了jQuery选择器、属性与样式和DOM操作等内容,本文将对jQuery的事件以及Ajax相关知识点进行讲解。接下来就一起来学习一下。...5、focusin()和focusout()事件: focusin()是获取焦点事件。比如有一个输入框,要在该输入框输入文字,我们首先得用鼠标点一下该输入框,这就叫获取焦点。...focusout()相反,就是失去焦点,用法和focusin()类似。 二、表单事件: 1、blur()和focus(): 这两个就是处理表单焦点的事件,blur()是失去焦点,focus是聚焦。...类似的event.currentTarget : 在事件冒泡过程中的当前DOM元素,等同于this。...它的调用格式如下: $.ajax([settings]) 其中参数settings为发送ajax请求时的配置对象,在该对象中,url表示服务器请求的路径,data为请求时传递的数据,dataType

    2.4K20

    事件

    如果上述showMessage方法在页面最底部定义,而用户在页面解析前点击了按钮,会引发错误。 (2)其作用域链在不同浏览器中会导致不同结果。...boolean=true,捕获阶段调用事件处理程序;boolean=false,冒泡阶段调用事件处理程序。...事件 说明 blur 在元素失去焦点时触发,不会冒泡 focus 在元素获得焦点时触发,不会冒泡 focusin 在元素获得焦点时触发,会冒泡 focusout 在元素失去焦点时触发,会冒泡 当焦点从页面中的一个元素移动到另一个元素...,会依次触发下列事件: (1)focusout在失去焦点的元素上触发; (2)focusin在获得焦点的元素上触发; (3)blur在失去焦点的元素上触发; (4)DOMFocusOut...需要注意的是,在使用最新chrome51时,不能修改弹窗文字! ?

    3.3K51

    【JS】310- 使用 focusout 事件,解决 iOS 键盘收起不归位问题

    要解决这个问题,我们可以在用户光标离开输入框的时候,调用 window.scrollTo(0, 0) 来把页面滚动到跟视口顶部对齐,从而实现页面归位的效果。...那么现在问题就是要给表单中 4 个输入框全部加上 blur 事件,然后在 handler 中调用 window.scrollTo。...原因经查是输入框的 blur 事件无法冒泡。 无法冒泡的解决方案 经过查询,发现 focus 和 blur 两个 DOM 事件在规范中就是无法冒泡的。...而与之相类似的有另外 2 个事件 focusin 和 focusout 则是可以冒泡的。 网上一些文章提到 focusin 和 focusout 是 IE 浏览器才支持的一种 DOM 事件。...这里我们用 setTimeout 来解决: focusin="inputFocus"> <input type="text" placeholder

    3.5K10

    JavaScript(十二)

    HTML 中定义的事件处理程序可以包含要执行的具体动作,也可以调用在页面其他地方定义的脚本,如下: 事件,但当时的事件处理程序有可能尚不具备执行条件 其次,扩展事件处理程序的作用域链在不同浏览器中会导致不同结果 最后,HTML 与 JavaScript...3 个参数: 要处理的事件名 作为事件处理程序的函数 一个布尔值 最后这个布尔值参数如果是 true,表示在捕获阶段调用事件处理程序,如果是 false,表示在冒泡阶段调用事件处理程序。...有以下 4 个焦点事件: blur: 在元素失去焦点时触发 focus: 在元素获得焦点时触发 focusin: 在元素获得焦点时触发。...类似地,只有触发两次 click 事件,才会触发一次 dblclick 事件。如果有代码阻止了连续两次触发 click 事件,那么就不会触发 dblclick 事件了。

    2.9K20

    深入学习 React 合成事件

    函数中会通过实际触发事件的节点,去寻找到它的document节点,并且调用legacyListenToEvent函数来进行事件绑定 function legacyListenToEvent(registrationName...三个监听函数之一,但是最终在触发事件调用的还是dispatchEvent事件。...为什么在合成事件对象不能被保存下来,而需要调用特殊的函数才能保留? 合成事件是怎么创建出来的?...中会通过调用extractPluginEvents函数,在这个函数内通过targetInst这个fiber对象,从这个对象一直往上寻找,寻找有一样的事件绑定的节点,并且把他们的回调事件组合到合成事件对象上...(),但还是会导致另外一个React版本上绑定的事件没有被阻止触发,所以在17版本中会把事件绑定到render函数的节点上。

    1.1K31

    事件循环是如何影响页面渲染的?

    这些异步调用的实现都是事件循环,但根据插入的队列不同和取任务的时机不同他们的表现也不同。 尤其在涉及与页面渲染的关系时。...调用栈被清空时意味着当前任务执行结束。 Task Queue 是事件循环的主要数据结构。...这时 Microtask Queue 只有一个 Microtask(Promise), 在它执行的过程中会插入第二个 Microtask(Promise queued by Promise)。...setImmediate 意在让脚本有机会在 UA 事件和渲染发生后立即得到调用,从渲染的角度上类似于渲染之后调用的 requestAnimationFrame。...请参考: https://github.com/YuzuJS/setImmediate/blob/master/README.md 插入的任务会在每次渲染任务之前执行,因此等待渲染之后需要调用两次来插入到第二次渲染之前

    1.2K30

    2016.07 第3周 群问题分享

    JavaScript focus/blur与focusin/focusout的区别与联系 2016.07.18~2016.07.22 核心内容 focus/blur与focusin/focusout 问题解析...focus/blur不冒泡,focusin/focusout冒泡 focus/blur兼容性好,focusin/focusout在除FireFox外的浏览器下都保持良好兼容性,如需使用事件委托,可考虑在...FireFox下使用事件流elem.addEventListener(‘focus’, handler, true) 可获得焦点的元素: window 链接被点击或键盘操作 表单空间被点击或键盘操作 设置...cookie的大小是受限的,并且每次你请求一个新的页面的时候cookie都会被发送过去,这样无形中浪费了带宽,另外cookie还需要指定作用域,不可以跨域调用。...但是Cookie也是不可或缺的:cookie的作用是与服务器进行交互,作为HTTP规范的一部分而存在 ,而Web storage仅仅是为了在本地“存储”数据而生。

    94980

    ​React太劝退,通过anu学合成事件

    最近刚好在改一个anu的bug,发现anu的合成事件实现的简单易懂。为什么不通过anu来学合成事件呢?...合成事件是什么、有什么用 合成事件是React在浏览器原有捕获->目标->冒泡事件运行机制的基础上重新实现的一套事件运行机制。 为什么要在浏览器事件运行机制之上再重新造轮子呢?...比如在React中,表单组件的change事件的触发时机其实对标的是原生DOM中的input事件。 再比如在React中,focus事件是由原生DOM中的focusin与focusout实现的。...在React中,不同事件的优先级不同。在不同事件的event handler中触发的setState会以不同优先级执行。 合成事件的实现 以下实现的代码皆来自anu。...(),依次调用event handler,模拟冒泡流程 接下来我们以click事件举例: 调用addGlobalEvent('click')注册全局handler用于事件委托。

    63830

    jQuery源码解析之click()的事件绑定

    一、事件委托 DOM有个事件流特性,所以触发DOM节点的时候,会经历3个阶段: (1)阶段一:Capturing 事件捕获(从祖到目标) 在事件自上(document->html->body->xxx)...(2)阶段二:Target 目标 浏览器找到监听器后,就运行该监听器 (3)阶段三:Bubbling 冒泡(目标到祖) 在事件自下而上(document->html->body->xxx)到达目标节点的过程中...,并通过jQuery.fn[ name ] = function( data, fn ) { xxx } 如果有参数,则是绑定事件,调用 on() 方法; 没有参数,则是调用事件,调用 trigger(...jQuery.on() 方法: //绑定事件的on方法 //源码5143行 //目标元素,类型(click,mouseenter,focusin,xxx),回调函数function(){xxx...注意下 if ( one === 1 ) 这种情况,是 $().one()在on()里的具体实现,即调用一次on()后,就执行jQuery().off( event ),卸载事件。

    1.8K20

    浅谈JavaScript的事件(事件类型)

    UI事件   UI事件的触发并不一定是由用户操作触发的,包括:load,页面完全加载后在window上触发该事件、当所有框架都加载完毕时触发、当图片加载完毕时在img上触发、当嵌入的元素加载完成时在object...有6个焦点事件:blur事件,元素失去焦点时触发事件,不会冒泡;focus事件,元素获得焦点时触发,不会冒泡;focusin事件,元素获得焦点时触发,会冒泡;focusout事件,元素失去焦点时触发,会冒泡...当用户在页面上由一个元素移动到另一个元素事件触发的顺序为:focusout事件,在失去焦点的元素上触发;focusin事件,在获得焦点的元素上触发;blur事件,在失去焦点的元素上触发;focus事件,...这个事件不冒泡,而且光标在移动到后代元素上不会触发;mouseleave事件,在位于元素上方的事件移动到元素范围之外时触发;mousemove事件,鼠标在元素内部移动时重复重复;mouseout事件,在鼠标指针位于一个元素上方然后用于将其移入另一个元素时触发...只有在同一个元素上触发mousedown和mouseup事件,才会触发click事件。只有触发两次click事件,才会触发dbclick事件。

    1.8K50
    领券