jQuery如何监听被触发的DOM事件?

时间:2013-01-29 02:05:36

标签: jquery dom javascript-events event-handling

jQuery如何知道任何DOM事件发生的时间?

$('body').on('click', function(e) {
    alert('working');
});

document.body.onclick; // null

我过分依赖这个库。有人能告诉我它是什么时候点击了身体的吗?

2 个答案:

答案 0 :(得分:3)

jQuery(感谢上帝)不使用DOM元素的onclick属性或属性,而是使用addEventlistener或IE- attachEvent

答案 1 :(得分:3)

.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将为空

供参考:http://code.jquery.com/jquery.js