jQuery的on() API对应的精确纯JavaScript等价实现是什么?
纯JavaScript实现等价事件委托功能
你用到的jQuery代码本质是事件委托逻辑:将事件绑定到永久存在的顶层节点document上,利用事件冒泡机制匹配后续动态插入DOM的目标元素,原生JS可以直接复现完整功能,无需引入jQuery:
document.addEventListener('click', function (e) { // 匹配点击事件源最近的符合选择器的元素,兼容点击按钮内部子元素的场景 const matchedButton = e.target.closest('.js-ya-share2-button'); if (matchedButton) { matchedButton.parentElement.querySelector('.ya-share2__item_more').click(); } });
实现说明
- 代码直接绑定到
document上,无需等待DOM加载完成即可执行,完美支持滚动后才加载、或者JS动态插入的.js-ya-share2-button元素 - 使用
Element.closest()方法对齐jQuery的事件委托匹配逻辑,即使点击的是按钮内部的子元素也能正确触发逻辑,比直接判断e.target.matches()覆盖场景更全面
内容的提问来源于stack exchange,提问作者klm123
相关产品推荐
相关产品推荐

