面试4:DOM

课程思维导图

DOM.png

Q:介绍DOM事件级别?

```javascript
// DOM0
element.onclick = function () {}
------------------------------------------
// DOM2
element.addEventListener('click', function () {
    //false冒泡阶段,true捕获阶段
}, false); 
------------------------------------------
// DOM3(增加了事件类型)
element.addEventListener('keyup', function () {

}, false);
```

注:DOM1没注册跟事件相关的东西

Q:请封装事件监听和解绑的兼容写法?

```javascript
var myEventUtil = {
    addEvent : function (ele,event,func) {
        //用能力检测进行跨浏览器兼容处理
        if(ele.addEventListener) {
            //false表示冒泡事件模型
            ele.addEventListener(event,func,false);
        }else if(ele.attachEvent){
            ele.attachEvent('on'+event,func);
        }else{
            ele['on'+event]=func;
        }
    },
    delEvent : function (ele,event,func) {
        if(ele.removeEventListener){
            ele.removeEventListener(event,func,false);
        }else if(ele.detachEvent){
            ele.detachEvent('on'+event,func);//IE
        }else {
            ele['on'+event]=null;
        }
    }
}
```

Q:介绍下事件模型?

捕获、冒泡

Q:介绍下事件流?

  1. 定义:用户与浏览器当前页面的交互过程
  2. 三个阶段:捕获阶段、目标阶段、冒泡阶段

Q:DOM事件捕获的具体流程是怎样的?

window => document => html => body => ... => 目标元素

Q:Event 对象有哪些常用应用?

  1. 阻止默认事件:event.preventDefault()
  2. 阻止冒泡:event.stopPropagation()
  3. 阻止调用相同事件的其他侦听器(事件响应优先级):event.stopImmediatePropagation()
  4. 当前绑定事件的元素:event.currentTarget
  5. 当前被点击的元素:event.target

Q:如何自定义事件?

```javascript
var event = new Event('custome');
dom.addEventListener('custome', funcion () {});
dom.dispatchEvent(event);
```

Event 与 CustomEvent唯一区别:CustomEvent除了可指定事件名,还可以跟自定义参数,做指定参数

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 8,895评论 1 11
  • JavaScript 程序采用了异步事件驱动编程模型。在这种程序设计风格下,当文档、浏览器、元素或与之相关的对象发...
    劼哥stone阅读 5,031评论 3 11
  • 事件流 JavaScript与HTML之间的交互是通过事件实现的。事件,就是文档或浏览器窗口中发生的一些特定的交互...
    DHFE阅读 4,284评论 0 3
  • 事件是什么,可以用来做什么,什么时候用到它? 事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间。JavaScr...
    茂茂爱吃鱼阅读 5,416评论 0 16
  • 《我的诗词》目录 昔日同学聚一堂,频频举杯忆过往。 欢声笑语伴酒香,皆因同...
    青梅梦语阅读 3,567评论 0 7

友情链接更多精彩内容