首页
学习
活动
专区
圈层
工具
发布

JQ事件和事件对象

首先来了解一下事件冒泡和捕获     事件冒泡:内部事件先触发,然后在触发外部事件     事件捕获:外部事件先被触发,然后在触发内部元素     mouseover()/mouseout() :鼠标移入“所选元素以及后代都会触发...”     mouseenter()/mouseleave():鼠标移入“所选元素”才会触发,如果鼠标移入所选元素的后代时,不会触发(增加阻止事件冒泡功能) 父元素上检测子元素获得焦点的情况 而focusout可以在父元素上检测子元素失去焦点情况  四 其他事件   1 scroll()滚动滚动条时触发的事件      2  resize...       2 event.target  触发该事件的DOM元素        3  event.currentTarget 在事件冒泡阶段中的当前DOM元素,等同于 this         4...以下是主要的鼠标按钮映射代码对应表 Event.which属性值 对应的鼠标按钮 1 鼠标左健 2 鼠标中健(滚轮键) 3 鼠标右健       6 event.preventDefault()  阻止事件的默认行为

5K20

浏览器中的事件委派、捕获、冒泡

这时通过 event.target 来得知实际上是哪一个元素发生事件,并处理该事件。这种把监听器装在父层,然后委派给子元素,就是所谓的事件委派。...事件冒泡冒泡阶段则是比较常用的,跟捕获阶段相反,它是先在目标上执行事件监听器,接着传递到父层,再传到父层的父层,然后一路传上去。...event.target 与 event.currentTarget 的差别前面提到事件委派时,我们提到了 event.target 这个属性。...让我们更深入地探讨 event.target 和 event.currentTarget 之间的差异:event.target:指向触发事件的元素在传播过程中, event.target 的值保持不变例如..., event.currentTarget 的值可能会发生变化例如,如果在一个父元素上添加点击事件监听器,当其子元素被点击时,事件会冒泡到父元素,此时 event.currentTarget 将指向父元素根据具体的需求

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

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

    我们希望,只绑定一次事件,即可应用到多个元素上,即使元素是后来添加的。 因此,比较好的方法就是把这个点击事件绑定到他的父层,也就是 ul 上,然后在执行事件函数的时候再去匹配判断目标元素。...//如果触发事件的对象是我们期望的元素,则执行否则不执行 if (event.target && event.target.className...click 事件,当子节点被点击的时候,click事件会从子节点开始向父节点冒泡。...父节点捕获到事件之后,开始执行方法体里的内容:通过判断 event.target 拿到了被点击的子节点。从而可以获取到相应的信息,并作处理。...换而言之,参数为false,说明事件是在冒泡阶段触发(子元素向父元素传递事件)。而父节点注册了事件函数,子节点没有注册事件函数,此时,会在父节点中执行函数体里的代码。

    66910

    Git版本控制 —— IDE工具(IDEA)

    创建成功后会在项目文件夹内出现.git 目录 克隆远程仓库 我们可以通过两种方式克隆Git项目。 第一种,通过其他工具(如:Git Bash)将Git项目克隆到本地,然后使用IDEA直接打开项目。...File --> New --> Project from version control --> Git    我们需要填写Git版本库URL、存储目录 ?...Checkout As... : 使用这个分支创建新的分支并检出到新分支。 Compare With... : 使用当前分支与所选分支做代码提交比较。.... : 使用远程分支创建一个新的本地分支,并检出这个分支。 Compare With : 使用当前分支与所选分支做代码提交比较。...(将所选分支提交加入到当前分支) Merge into  Current: 合并分支(将当前分支与所选分支进行合并) Delete :删除所选分支 本地分支推送到远程仓库 检出要推送的分支,然后项目右键

    4.2K20

    阻止mouseover冒泡行为_onmousedown是什么意思

    事件冒泡 比如说父元素添加了onclick事件,当子元素发生onclick事件时,父元素的onclick事件也会触发。 四....方式二: if(event.target == event.currentTarget) { ……} 事件包含最初触发事件的节点引用 和 当前处理事件节点的引用,那如果节点只处理自己触发的事件即可...event.target永远是直接接受事件的目标DOM元素。...,既然事件是冒泡传递的,那可不可以让某个父节点统一处理事件,通过判断事件的发生地(即事件产生的节点),然后做出相应的处理呢?...答案是可以的,下面通过给body 元素添加事件监听,然后通过判断event.target 然后对不同的target产生不同的行为。

    1.8K20

    问题小记

    event.target 和 event.currentTarget 的区别 event.target 和 event.currentTarget 的区别 冒泡和捕获: 当addEventListener...的第三个参数为true的时候,代表是在捕获阶段绑定;当第三个参数为false或者为空的时候,代表在冒泡阶段绑定 结论:event.target指向引起触发事件的元素,而event.currentTarget...则是事件绑定的元素,只有被点击的那个目标元素的event.target才会等于event.currentTarget。...,line-height = height 多行文本的高度固定居中, display:table和display:table-cell的使用方法,前者必须设置在父元素上,后者必须设置在子元素上。...em的值不固定,会继承父级元素的字体大小 避免字体大小被重复计算,也就是1.2 * 1.2= 1.44的现象 rem:始终是基于根元素 ,是目前比较好的解决方法。

    85810

    js判断是否是子元素

    文本俺将跟大家介绍,如何判断一个当前点击的元素,是否是指定元素的子元素。 解决思路: 俺给父元素指定了一个id,并使用这个循环检查当前元素是否属于它的子元素。...{ return (this.closest(b).length > 0); }; //使用起来也非常方便: $(document).click(function(event){ alert($(event.target...).isChildOf(“.floatLayer”)); }); //或者 $(document).click(function(event){ alert($(event.target).isChildAndSelfOf...document.addEventListener('click', event => { const parentId = 'mycontainer' if (isDescendant(event.target..., parentId)) { //处理是子元素的情况 } else { //处理不是子元素的情况 } }) 在while循环中,俺使用赋值运算符=进行迭代,直到不再有父节点,在本例中为

    13.1K00

    事件对象的使用、属性和方法

    1 event.target代表当前触发事件的元素,可以通过当前元素对象的一系列属性来判断是不是我们想要的元素 2 target属性可以是注册事件时的元素或者子元素,通常用于比较event.target...事件对象只有事件发生时才会产生,并且只能是事件处理函数内部访问,在所有事件处理函数运行结束后,事件对象就被销毁 4 jQuery事件对象的作用 li都有一个共同的父元素,而且所有的事件都是一致的...3 11 event.currentTarget : 在事件冒泡过程中的当前DOM元素,冒泡前的当前触发事件的DOM对象, 等同于this 12 this和event.target的区别...this是可以变化的,但event.target不会变化,它永远是直接接受事件的目标DOM元素 13 .this和event.target都是dom对象,使用jquey中的方法可以将他们转换为...jquery对象,比如this和$(this)的使用、event.target和$(event.target)的使用 转帖:http://blog.51cto.com/lakaodekaola/2085868

    2K30

    深入理解 DOM 事件机制

    三、事件代理(事件委托) 由于事件会在冒泡阶段向上传播到父节点,因此可以把子节点的监听函数定义在父节点上,由父节点的监听函数统一处理多个子元素的事件。这种方法叫做事件的代理(delegation)。...2.如何实现 接下来我们来实现上例中父层元素 #list 下的 li 元素的事件委托到它的父层元素上: // 给父层元素绑定事件 document.getElementById('list').addEventListener...event.target & event.currentTarget 老实说这两者的区别,并不好用文字描述,我们先来看个例子: <div...:d¤tTarget:a 从输出中我们可以看到,event.target指向引起触发事件的元素,而event.currentTarget则是事件绑定的元素,只有被点击的那个目标元素的event.target...也就是说,event.currentTarget始终是监听事件者,而event.target是事件的真正发出者。

    3.1K50

    深入理解JavaScript中的事件委托与事件代理

    当子元素上发生特定事件时,事件会冒泡到父元素,然后由父元素上的事件处理程序来处理。事件代理则更侧重于将事件处理的逻辑委托给一个中间的代理对象或函数。...事件冒泡与事件捕获事件冒泡是指当一个元素上的事件被触发时,事件会从该元素开始向上冒泡,依次触发父元素上的相同事件,直到到达文档的根节点。...', function(event) { // 检查事件的目标是否是列表项 if (event.target && event.target.nodeName === 'li') {...对于那些不支持冒泡的事件(如focus和blur),事件代理可能不适用。事件目标精确性:事件代理需要检查事件的目标元素(event.target),以确保正确处理事件。...跨域问题:当事件代理用于处理跨域元素(如iframe中的内容)时,由于浏览器的同源策略限制,可能无法访问event.target的一些属性,从而限制了事件代理的使用。

    55931

    【前端 · 面试 】JavaScript 之你不一定会的基础题(二)

    ] 事件捕获和事件冒泡 当一个事件发生在具有父元素的元素上(例如,在我们的例子中是 child 元素)时,现代浏览器运行两个不同的阶段 - 捕获阶段和冒泡阶段。...this 和 event.target 首先,我们得有一个清晰的认知:事件冒泡或者事件捕获,都是针对注册了事件的元素。...关于 this 和 event.target ,总结如下: 在整个事件流程中,event.target 永远都指向真正触发了事件流程的元素 ,即处于事件触阶段的元素。...捕获止于 event.target,冒泡始于 event.target。 主流浏览器都默认在冒泡阶段进行事件注册,所以,只有阻止冒泡的方法而没有阻止捕获的方法。...元素的 addEventListener 方法中的第三个参数是 true 或者 false,对元素自己触发的事件流程都没有任何影响,只有在它的父元素或者子元素在触发相同的事件后才有影响。

    70610

    浅析 JavaScript 中的事件委托

    那么事件传播是怎样帮助捕获多个按钮事件的呢? 该算法很简单:把事件侦听器附加到按钮的父级,并在单击按钮时捕获冒泡事件。这就是事件委托的工作方式。...事件委托的思想很简单。你不需要把委托事件监听器直接附加到按钮上,而是可以委托父监听 。单击按钮时,父元素的侦听器将会捕获冒泡事件(还记得前面所说事件传播吗?)。...使用事件委托需要 3 个步骤: 步骤 1:确定要监视事件的元素的父级元素 在上面的例子中, 是按钮的父元素。...步骤 3:用 event.target 选择目标元素 单击按钮时,将会用event 对象参数调用处理函数。...使用事件委托需要三个步骤: 确定要监视事件的元素的父级元素 把将事件侦听器附加到父元素 用 event.target 选择目标元素 ---- 作者:Dmitri Pavlutin 翻译:疯狂的技术宅

    3.4K30

    jQuery 事件(三) 事件的绑定和解绑、对象的使用、自定义事件

    因为li都有一个共同的父元素,而且所有的事件都是一致的,这里我们可以采用要一个技巧来处理,也是常说的”事件委托” 事件没直接和li元素发生关系,而且绑定父元素了。...event.target target 属性可以是注册事件时的元素,或者它的子元素。...通常用于比较 event.target 和 this 来确定事件是不是由于冒泡而触发的。...DOM元素 冒泡前的当前触发事件的DOM对象, 等同于this. this和event.target的区别: js中事件是会冒泡的,所以this是可以变化的,但event.target不会变化,它永远是直接接受事件的目标...比如this和(this)的使用、event.target和(event.target)的使用; 自定义事件 trigger事件 类似于mousedown、click、keydown等等这类型的事件都是浏览器提供的

    4.7K30

    DOM事件基本概念大总结(前端必备)

    比如点击某一个按钮,而它是由上一层的父标签,或许在上一层还有父标签甚至是整个页面。因此点击一个元素可以看成是同时点击了父标签或者整个页面。那么此时事件应该怎么响应到指定标签呢?..., event.currentTarget); } function son(event) { console.log(event.target, event.currentTarget..., event.currentTarget); } function son(event) { console.log(event.target, event.currentTarget...(event) { console.log(event.target, '加载完毕'); }) 用来加载图片 绑定事件后,设置 img 的 src 即刻加载。...(event) { console.log(event.target, '跳转了'); }) resize 事件 当页面大小发生改变时触发,可以用此来获取一些窗口属性,用来做响应式开发。

    2.2K20
    领券