如何将jQuery事件处理程序转换为纯JavaScript

时间:2017-02-22 03:17:05

标签: javascript jquery dom-events

我以前使用的代码是:

$(document).on('click', 'a[href^="http"]', () => {});

拦截链接点击。出于复杂的解释原因,我必须在加载 jQuery之前将代码移动到某处。如何在纯JavaScript中编写此代码?

1 个答案:

答案 0 :(得分:1)

根据上面的评论,您可以使用vanila JavaScript将上面的事件绑定jQuery代码转换为以下内容,

var links = document.querySelector('a[href^="http"]');
links.forEach(function(link) {
    button.addEventListener("click",function(e){
       // handling logic
    }, false);
} )

上面的代码将事件处理程序绑定到每个a元素,这可能很昂贵。

创建活动代理

向文档添加事件处理程序,并查看目标是否是您想要的链接

document.addEventListener("click", function(e) {
    // check the target has an attribute of `a[href^="http"]`
    if(e.target && e.target.nodeName == "a") {

    }
});

上面的代码使用事件冒泡来捕获文档中的单击事件。