事件触发:那个元素真正触发了事件
事件冒泡:由内到外
如果 ul 和 li 都绑定了click事件,当对 li 元素进行点击事件时,事件捕获则是先调用ul的click事件,之后再调用li的click事件,冒泡阶段则是先调用li的click事件,之后再调用ul的click事件
4、阻止冒泡
event.stopPropagation();阻止事件冒泡
IE浏览器:window.event.cancelBubble = true
5、阻止捕获
6、具体案例:
<ul id="app">
<li id="child">大家好,我是1号</li>
<li>大家好,我是2号</li>
<li>大家好,我是3号</li>
<li>大家好,我是4号</li>
<li>大家好,我是5号</li>
<script>
var app = document.getElementById('app');
app.addEventListener('click', function (event) {
console.log(1, event.target, event);
var li = document.getElementById('child');
li.addEventListener('click', function (event) {
console.log(2, event.target, event);
</script>
2 <li id="child">…</li> PointerEvent {isTrusted: true, pointerId: 1, width: 1, height: 1, pressure: 0, …}
1 <li id="child">…</li> PointerEvent {isTrusted: true, pointerId: 1, width: 1, height: 1, pressure: 0, …}
执行的顺序是冒泡顺序
如果将li的click事件的第三个参数设置为true,得到的结果也是如上结果,因为对于ul来说触发阶段在冒泡阶段,则是先执行li的点击事件,而li的触发阶段是在捕获阶段,因此先执行li的点击事件
<ul id="app">
<li id="child">大家好,我是1号</li>
<li>大家好,我是2号</li>
<li>大家好,我是3号</li>
<li>大家好,我是4号</li>
<li>大家好,我是5号</li>
<script>
var app = document.getElementById('app');
app.addEventListener('click', function (event) {
console.log(1, event.target, event);
}, true);
var li = document.getElementById('child');
li.addEventListener('click', function (event) {
console.log(2, event.target, event);
}, true);
</script>
1 <li id="child">…</li> PointerEvent {isTrusted: true, pointerId: 1, width: 1, height: 1, pressure: 0, …}
2 <li id="child">…</li> PointerEvent {isTrusted: true, pointerId: 1, width: 1, height: 1, pressure: 0, …}
执行的顺序是捕获顺序
如果将ul的click事件的第三个参数设置为true,li的第三个参数为false, 得到的结果也是如上结果,因为对于ul来说触发阶段在捕获阶段,则是先执行ul的点击事件,而ul的触发阶段是在捕获阶段,因此先执行ul的点击事件
Java radis权限 java四种权限
前言:本篇随笔,主要记录Java的基础知识点,不管是用于项目或者面试中,笔者认为都非常有用,所以将持续更新......
1.Java的访问权限
Java中有四种访问权限:默认访问权限、public、private、protected
这四种访问权限中,只有默认访问权限和public才能修饰类(这里所说的类为外部类,对于内部类,四种权限都可以进行修饰),对于字段和方法,四种权限都可以进行修饰。