Basic learning

DOM:

  • 一、正确的事件委托

错误的写法:

ul.addEventListener('click', function (e) {
    if (e.target.tagName.toLowerCase() === 'li') {
        console.log('...');
    }
})

这么写的原因是假如想要点击的是li就执行回调,但是li里面嵌套了其他标签如span。此时就需要用while循环一直到找不到指定的节点再跳出循环。

function enTrust (element, eventType, selector, fn) {
    element.addEventListener(eventType, e => {
        let el = e.target;
        while (!el.matches(selector)) {
            if (element == el) {
                el = null;
                break;
            }
            el = el.parentNode;
        }
        el && fn.call(el);
    });
    return element;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容