jQueryでイベント管理とかしている時にうっかり忘れるとハマるやつ
なにかDOMがあって、それに対してイベント監視しておいて、イベント発火時にそのイベントの情報をもとに色々と操作したいとき。
var $dom = $('.target_btn'); $dom.on('click', function(event) { var target = event.target; console.log(target); // undefined });
って感じに生のjsと同じように直接event
のプロパティ取ってこようとすると、undedined
になる。
jQueryでイベント発火とかさせていた場合は、event.originalEvent
に生のjsの時と同じようにプロパティが入ってる。
var $dom = $('.target_btn'); $dom.on('click', function(event) { var oEvt = event.originalEvent, target = oEvt.target; console.log(target); // .target_btnなDOM });
なので、こっちが正しい。
うっかり忘れて書いてるとハマる。