DOM 事件机制

2020-10-11  本文已影响0人  lin_lilili

1 事件阶段

1.1 事件阶段只能二选一

1.2 可以同时拥有捕获和冒泡吗?

1.3同时拥有冒泡和捕获时,哪个先执行?

1.4特例

2 捕获与冒泡的特性

2.1 捕获不可取消,但是冒泡可以.

2.2中断冒泡

2.3 取消(阻止)默认动作

2.4 有些事件不能阻止默认动作.

2.5 如何阻止滚动呢?

  1. 阻止wheel,或者touchstart的默认动作.
  2. CSS取消滚动条.

2.5 Bubbles 与 Cancelable

3 事件委托

3.1什么是事件委托?

3.2 为什么使用事件监听?

4 封装事件委托

       <div id="testDiv">
            <li>123</li>
        </div>
        <script>
            let on = function (eventType, parentE, sonE, fn) {
                if (!(parentE instanceof Element)) {
                    el = document.querySelector(parentE);
                }
                el.addEventListener(eventType, e => {
                    const target = e.target;
                    if (t.matches(sonE)) {
                        fn(e);
                    }
                });
            };
            on('click', '#testDiv', 'li', e => console.log(e));
        </script>
上一篇下一篇

猜你喜欢

热点阅读