jQuery 如何知道任何 DOM 事件何时发生?
$('body').on('click', function(e) {
alert('working');
});
document.body.onclick; // null
我太依赖这个库了。有人能告诉我它是如何知道身体被点击的吗?
jQuery 如何知道任何 DOM 事件何时发生?
$('body').on('click', function(e) {
alert('working');
});
document.body.onclick; // null
我太依赖这个库了。有人能告诉我它是如何知道身体被点击的吗?
jQuery(感谢上帝)不使用onclick
DOM 元素的属性或属性,而是使用addEventlistener
IE-attachEvent
.on
换jQuery.event.add
行(如果您查看第 2688 行的 jQuery 源代码)。
这尝试使用事件类型的缓存版本,但如果没有,最终归结为调用特定于浏览器的函数来附加事件(在第 2767 行左右)。
if ( elem.addEventListener ) {
elem.addEventListener( type, eventHandle, false );
} else if ( elem.attachEvent ) {
elem.attachEvent( "on" + type, eventHandle );
}
对于这两种情况,它似乎都没有回退,因此on*
永远不会写入属性。因此,elem.onclick
如果您使用,将为空jQuery.on