2020年WEB前端开发面试题最新整理(47

您所在的位置:网站首页 web前端里的注释是什么 2020年WEB前端开发面试题最新整理(47

2020年WEB前端开发面试题最新整理(47

2023-03-17 08:09| 来源: 网络整理| 查看: 265

47.Javascript 的addEventListener()及attachEvent()区别分析

addEventListener()和attachEvent()是一个侦听事件并处理相应的函数,可以动态的为网页内的元素添加一个或多个事件。可以将事件和元素分离,这样可编辑性就高了。addEventListener的使用方式: target.addEventListener(type, listener, useCapture); target: 文档节点、document、window 或 XMLHttpRequest。 type: 字符串,事件名称,不含“on”,

比如“click”、“mouseover”、“keydown”等。 listener :实现了 EventListener 接口或者是 JavaScript 中的函数。 useCapture :是否使用捕捉,一般用 false 。例如:document.getElementById("testText").addEventListener("keydown", function (event) { alert(event.keyCode); }, false); 而attachEvent()则是,target.attachEvent(type, listener);

注意:attachEvent()中的type: 字符串,事件名称,含“on”,比如“onclick”、“onmouseover”、“onkeydown”等。

48.关于事件监听

比如, 就表示"你正在监听 click 事件", 而事件监听器就是我们为了要响应这个事件而写的函数。至于事件监听机制了,就是冒泡和捕获。

49.事件监听机制(冒泡和捕获)

事件捕获:事件从最上一级标签开始往下查找,直到捕获到事件目标(target)。

事件冒泡:事件从事件目标(target)开始,往上冒泡直到页面的最上一级标签。

假设一个元素div,它有一个下级元素p。

  

元素

这两个元素都绑定了click事件,如果用户点击了p,它在div和p上都触发了click事件,那这两个事件处理程序哪个先执行呢?

如div先触发,这就叫做事件捕获。

如p先触发,这就叫做事件冒泡。

IE只支持事件冒泡,其他主流浏览器两种都支持。

程序员可以自己选择绑定事件时采用事件捕获还是事件冒泡,方法就是绑定事件时通过addEventListener函数,它有三个参数,第三个参数若是true,则表示采用事件捕获,若是false,则表示采用事件冒泡。

事件的传播是可以阻止的:

• 在W3c中,使用stopPropagation()方法

在捕获的过程中stopPropagation();后,后面的冒泡过程也不会发生了~

propagation 【传播,蔓延】

3.阻止事件的默认行为,例如click a标签后的跳转~

• 在W3c中,使用preventDefault()方法;

• 在IE下设置window.event.returnValue = false;

50.什么是DOM事件处理程序?

首先要理解什么是DOM?Dom是针对HTML文档的一个API。什么是事件流?事件流分为:事件冒泡(IE的事件流)和事件捕获。事件冒泡就是由最具体的元素开始接收,然后逐级向上;事件捕获就是由不太具体的元素开始接收,逐级向下,最具体的元素最后才接收到事件。DOM事件处理程序分为DOM0级、DOM2级。DOM0级具有简单,跨浏览器的优势,它是把函数赋值给一个事件的处理程序属性。例如:btn.onlick=function(){。。。};DOM2级事件定义了两个方法,用于处理指定和删除事件处理程序的操作。addEventListener()和removeEventListener()。它们都接收三个参数,要处理的事件名、作为事件处理程序的函数和布尔值。布尔值为true表示在捕获阶段调用事件处理程序,布尔值为false是在冒泡处调用。注意:事件名要去掉“on”。通过addEventListener()添加的事件,只能由removeEventListener()删除。IE存在兼容问题,可以用attachEvent()添加事件和detachEvent()删除事件。接收两个参数,事件处理程序的名称和函数。注意:事件名此时要加”on”。

51.如果给一个元素同时绑定两个事件,会怎么样?

Dom 0级和Dom 2级都可以给一个元素添加多个事件,Dom 0级的每个事件只支持一个事件处理程序,如果绑定同一个事件,那么后边的那个事件,函数会覆盖掉前边的那个事件函数。Dom2级可以添加多个事件处理程序,他们会按照添加的顺序触发。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3