DOM0级同DOM2级
DOM0级分为两个:
一是写在标签内的onclick事件;
<button id="btn" onclick="alert('happy')">按钮</button>
二是在JS写的onclick = function() {}函数
document.getElementById("btn").onclick = function() { alert('thanks') };
DOM2级只有一个:
监听方法,原生方法addEventListener()用于添加事件处理程序(可以添加多个事件处理程序,触发时按照添加顺序依次调用);
removeEventListener()用于移除事件处理程序。
document.getElementById("btn").addEventListener("click", function(){alert("come on")} , false);
两个方法都有三个参数:
event:表示事件名,如click;
function: 事件处理程序函数;
useCapture: true表示捕获阶段调用,false表示在冒泡阶段调用。
DOM2级包含3个事件:事件捕获阶段、处于目标阶段、事件冒泡阶段
<div><a></a></div>,点击a
捕获阶段传播: document ——> div ——> a,然后发生在a。
冒泡阶段传播: a ——> div ——> document
区别:
如果定义两个DOM0级事件,会出现覆盖,DOM2不覆盖,会依次执行。DOM0和DOM2可以共存,不互覆盖。
<a href="#" id="hash" onclick="fn();fn1()">
<button>返回上面进行开通</button>
</a> <!-- 以下四个script的结果是分开执行所得 --> <!-- 内嵌DOM0:把onclick写在标签内,都是DOM0级事件,fn和fn1依次执行。 -->
<script>
var btn = $("#hash").get(0);
function fn() {
console.log('ade');
}
function fn1() {
console.log('ade111');
}
// ade
// ade111
</script> <!--绑定onclick事件作为DOM0级,会覆盖行内onclick,也会覆盖前面的绑定事件-->
<script>
var btn = $("#hash").get(0); btn.onclick = function () {
console.log("111");
}
btn.onclick = function () {
console.log("222");
}
function fn() {
console.log('ade');
}
function fn1() {
console.log('ade111');
}
// 222
</script> <!--DOM2-->
<script>
var btn = $("#hash").get(0);
$("#hash").click(function() {
console.log("JQ的DOM2级点击第一次");
}); $("#hash").click(function() {
console.log("JQ的DOM2级点击第二次");
}); btn.addEventListener("click", function () {
console.log("原生DOM2级点击第一次");
}, false); btn.addEventListener("click", function () {
console.log("原生DOM2级点击第二次");
}, false); // JQ的DOM2级点击第一次
// JQ的DOM2级点击第二次
// 原生DOM2级点击第一次
// 原生DOM2级点击第二次
</script> <!--DOM0和DOM2-->
<script>
// 作为DOM0级被调用
function fn() {
console.log('ade');
} // 作为DOM0级被调用
function fn1() {
console.log('ade111');
} // 作为DOM0级
var btn = $("#hash").get(0);
btn.onclick = function() {
console.log('111');
} // DOM0
$('#hash').click(function() {
console.log('JQ的DOM2级点击第一次');
}); // DOM2
btn.addEventListener('click', function () {
console.log('原生DOM2级第一次click')
}, false); // 111 (fn()、fn1()被覆盖)
// jq的DOM2级点击第一次
// 原生DOM2级第一次click
</script>
DOM0级同DOM2级的更多相关文章
- DOM0级与DOM2级
定义: 0级DOM 分为2个:一是在标签内写onclick事件 二是在JS写onlicke=function(){}函数 1) <input id="myButton" t ...
- javaScript——DOM1级,DOM2级,DOM3级
DOM0,DOM2,DOM3事件处理方式区别:http://www.qdfuns.com/notes/11861/e21736a0b15bceca0dc7f76d77c2fb5a.html JS中do ...
- js DOM0级事件和DOM2级事件
注册事件有两种方式,分别是DOM0级和DOM2级 DOM0级就是通过事件绑定的形式dom元素只能有(绑定)一个事件处理函数,他的特点是同一个元素绑定相同事件, 后面函数会覆盖前面的 绑定: dom.o ...
- dom0级事件和dom2级事件
dom0级事件 <a href="#" id="hash" onclick="fn();fn1();"> <button ...
- 测试DOM0级事件和DOM2级事件的堆叠
1. 问题 如果大家看过北风网CJ讲师的Javascript视频教程,就可以看到其封装了一个很强的事件添加和删除函数,如下所示 function addEvent(obj, evtype, fn) { ...
- DOM0级事件处理、DOM2级事件处理
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 【20190226】JavaScript-知识点记录:dom0级事件,dom2级事件
DOM0级事件处理程序: 通过将元素的事件处理程序属性(如onclick)的值设置为一个函数来指定事件处理程序的方法称为DOM0级方法,它被认为是元素的方法,这时候的事件处理程序是在元素的作用域中运行 ...
- DOM0、DOM2级事件
JavaScript DOM0.DOM2级事件 1.DOM0级事件:on+事件类型 在html行内直接绑定,也就是通过行内js绑定的例如<span onclick="alert('1' ...
- 关于DOM事件流、DOM0级事件与DOM2级事件
一.DOM 事件模型 DOM 事件模型包括捕获和冒泡,捕获是从上往下到达目标元素,冒泡是从当前元素,也就是目标元素往上到 window 二.流 流的概念,在现今的 JavaScript 中随处可见.比 ...
随机推荐
- Redis 常见性能问题和解决方案?
1.Master 最好不要写内存快照,如果 Master 写内存快照,save 命令调度 rdbSave 函数,会阻塞主线程的工作,当快照比较大时对性能影响是非常大的,会间断性 暂停服务 2.如果数据 ...
- 学习Squid(一)
第1章 Squid介绍 1.1 缓存服务器介绍 缓存服务器(英文意思cache server),即用来存储(介质为内存及硬盘)用户访问的网页,图片,文件等等信息的专用服务器.这种服务器不仅可以使用户可 ...
- Java_lambda表达式之"stream流学习,Map学习,collect学习,Conllectors工具类学习"
Lambda表达式学习 对List<Integer> userIdList = UserList.stream().map(User::getUserId).collect(Collect ...
- freeswitch对接WEBRTC的一个candidate问题
概述 近几年,WEBRTC的完善与成熟,使得网页上使用webrtc的应用越来越多. Freeswitch是一个开源的软交换平台,可以直接支持webrtc的对接方式. 最近在测试fs和webrtc的对接 ...
- ctfhub 过滤运算符 综合过滤练习 读取源代码 远程包含 eval执行 文件包含 php://input
过滤运算符 过滤了\和&那么尝试; 成功那么将flag cat出来 127.0.0.1;cat flag_27249269530391.php 得到flag 综合过滤练习 这次过滤有点多过滤了 ...
- Nuxt.js的踩坑指南(常见问题汇总)
本文会不定期更新在nuxt.js中遇到的问题进行汇总.转发请注明出处,尊重作者,谢谢! 强烈推荐作者文档版踩坑指南,点击跳转踩坑指南 在Nuxt的官方文档中,中文文档和英文文档都存在着不小的差异. 1 ...
- 浅谈JavaScript原型与原型链
对于很多前端开发者而言,JavaScript的原型实在是很让人头疼,所以我这边就整理了一下自己对应原型的一点理解,分享给大家,供交流使用 原型 说起原型,那就不得不说prototype.__proto ...
- 关于CDN那些事
对于前端性能优化我们不得不了解的几个知识点:CDN.HTTP header信息 今天我就来谈谈我对cdn的理解 1.CDN是什么:CDN全称是Content Delivery Network,即内容分 ...
- JQuery基础修炼-样式篇
jQuery对象转化成DOM对象 jQuery库本质上还是JavaScript代码,它只是对JavaScript语言进行包装处理,为了是提供更好更方便快捷的DOM处理与开发常见中经常使用的功能.我们可 ...
- 前端工作面试HTML相关问题
前端工作面试HTML相关问题 Q: doctype(文档类型)的作用是什么? A: 在HTML中 doctype 有两个主要目的. 对文档进行有效性验证: 它告诉用户代理和校验器这个文档是按照什么DT ...