2

jQueryはDOMイベントがいつ発生したかをどのように認識していますか?

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

document.body.onclick; // null

私はこのライブラリに頼りすぎています。体がクリックされたときにそれを知る方法を教えてもらえますか?

4

2 に答える 2

3

jQuery (神に感謝) はonclick、DOM 要素の属性またはプロパティを使用せず、代わりにaddEventlistenerまたは IE-を使用します。attachEvent

于 2013-01-29T02:08:51.250 に答える
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

于 2013-01-29T02:11:20.797 に答える