jQuery在纯原生javascript中的“on”和“off”

jQuery's "on" and "off" in pure native javascript

本文关键字:on off 中的 原生 javascript jQuery      更新时间:2023-09-26

我正在寻找一种方法来表示纯JavaScript代码中jQuery的"on"和"off"功能。

例如:

jQuery("my_selector_here").on("click", function(){
     // some code here...
})

应该以最(完全)准确的方式表示,例如:

myobj.fn.on = function(){
     // pure javascript code here...
}

提前感谢!

最原生的方法是使用 DOM 的 Element.prototype.addEventListener 方法。这看起来很简单,就像

elem.addEventListener('click', function( event ) {
}, false);

也就是说,除了其他一些魔法之外,jQuery将在下面调用什么。库处理的最大问题是,旧的Internet Explorer在元素上添加事件时有不同的语法。那些人使用elem.attachEvent方法,这种方法有一些细微的差异。

天真地说,我们可以添加到Elements.prototype.例如

Element.prototype.on = function( name, callback ) {
    this.addEventListener( name, callback, false );
};

..然后我们可以像

document.body.on('click', function() {
    // code
});

参考: addEventListener , jQuery .on