jQuery" on"和"关"在纯原生javascript中

时间:2014-11-13 13:35:29

标签: javascript jquery native

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

例如:

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

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

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

提前致谢!

1 个答案:

答案 0 :(得分:3)

最原生的方法是使用DOM的Element.prototype.addEventListener方法。这看起来非常简单,如

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

也就是说,除了其他一些魔法之外,jQuery会在下面调用什么。图书馆处理的最大问题是旧的Internet Explorer在Elements上添加事件的语法不同。那些使用了elem.attachEvent方法,这有一些细微的差别。

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

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

..然后我们可以像

一样使用它
document.body.on('click', function() {
    // code
});

参考:addEventListenerjQuery .on