美文网首页
DOM事件模型

DOM事件模型

作者: zzyo96 | 来源:发表于2018-11-27 16:52 被阅读0次

例一:

image.png

为什么A不对?因为在html中onclick=" " 接的是要执行的代码,你直接给一个print是什么意思,执行个毛。而B,C给的是函数,理解为当点击后执行对应的函数。

例二:

image.png

print的类型为对象
print() 函数如果没有return返回值是Undefined

例三:

HTML代码

<button id="xxx">xxx</button>

JS代码:

//第一种写法
xxx.addEventListener('click',function(){
  console.log(1)
})
//第二种写法
xxx.onclick=funtion(){
console.log(2)
}
xxx.onclick=function('click',funtion(){
console.log(3)
})

这两种写法有何区别?第二种写法是xxx的一个属性,属性意味着可以被覆盖,比如这时候我在写一个console.log(3),这个时候他只会执行3,而把2覆盖了,所以这是一个非常不好的模型,因为会被覆盖,比如我同事写了一个事件A,我又写了一个事件B,结果他的A就不会被执行了。于是有了addEventListener(事件监听队列)

____________________________________________________

addEventListener

1.addEventListener 队列模型,特点“先进先出”, 队列的实质是:数组

JS代码

xxx.addEventListener('click',function(){
  console.log(1)
})
xxx.addEventListener('click',function(){
  console.log(2)
})
结果: 先打印1 再打印2 符合“先进先出”

2.remove 也是队列模型

JS代码

function f1(){
  console.log(1)
}
function f2(){
  console.log(2)
}
function f3(){
  console.log(3)
}
xxx.addEventListener('click', f1)
xxx.addEventListener('click', f2)
xxx.removeEventListener('click', f1)
xxx.addEventListener('click', f3)
xxx.removeEventListener('click', f3)
当点击xxx时,会打印出几? 答案:2

3.one是如何实现的?

以下是one的实现过程

function f1(){
  console.log(1)
  xxx.removeEventListener('click', f1)
}

xxx.addEventListener('click', f1)

4.当点击儿子的时候

image.png
问题一:当点击儿子的时候他们触发的顺序是怎样的?
情况一:w3c说都可以,默认情况下也就是不传值或者传falsy值(false,0,NaN,'',undefined,null)的时候,执行的顺序是儿子爸爸爷爷
情况二:如果他们三个都传true值,则爷爷爸爸儿子
情况三:即有true又有false 先捕获再冒泡
image.png
默认是从下到上也就是冒泡。如果传true值就跑到左边,并且每个函数只会执行一次,要么冒泡执行要么捕获时执行
image.png
打印出 爸爸 儿子爷爷
问题二:如果在儿子身上既传false ,又传true值 ,则先写哪个先执行哪个,跟传的值无关
image.png
先打印捕获,然后是冒泡

相关文章

  • JavaScript--模型、闭包、链

    (1)事件模型JavaScript中有两种时间模型:DOM0,DOM2 DOM0级事件模型是早期的事件模型,所有的...

  • jQuery事件

    第1章 DOM事件模型 DOM 0级 事件模型 input.onclick = function() { ... ...

  • jQuery--事件处理

    jQuery--事件处理 一、事件模型 1.浏览器事件模型①DOM0级事件模型:只支持一个DOM事件处理函数• ...

  • DOM的事件模型中addEventListener的第三个参数

    DOM的事件模型这里只讨论主流浏览器的DOM标准事件处理模型 什么是DOM事件模型 本人在初次接触时,大致学习了D...

  • 前端面试题(3)——DOM事件类

    基本概念:DOM事件的级别 DOM事件模型:事件冒泡事件捕获 DOM事件流 描述DOM事件捕获的具体流程 Even...

  • jQuery--事件处理

    一、事件模型 1.浏览器事件模型 ①DOM0级事件模型:只支持一个DOM事件处理函数• • input.onc...

  • Dom事件

    Dom事件的级别Dom事件模型(冒泡+捕获)Dom事件流 http://www.cnblogs.com/staro...

  • Dom事件

    基本概念 Dom事件级别 Dom事件模型 Dom事件流 描述Dom事件捕获的具体流程 Event对象的常见应用 自...

  • 3-6 DOM事件

    问题 DOM 事件的级别 DOM 事件模型(就是捕获和冒泡儿) DOM 事件流 描述DOM事件捕获的具体流程 Ev...

  • DOM事件类

    基本概念:DOM事件的级别 DOM事件模型 DOM事件流 描述DOM事件捕获的具体流 Event对象的常见应用 自...

网友评论

      本文标题:DOM事件模型

      本文链接:https://www.haomeiwen.com/subject/pllhtqtx.html