私はイベントターゲティングの実験を行い、バニラJSとjQueryでその実行を比較しています。私は結果が異なっていたことに驚いた。バニラJSでは成功しましたが、jQueryでは成功しませんでした。私が間違っていないと、jQueryのイベントターゲティングのコードは$(event.target)
で、vanilla JSのコードはevent.target
です。私の実験では、<body>
タグの中にボタンが1つしかありません。イベントによってターゲットにされているときはいつでも、ブラウザは「ボタン要素はターゲットです」と警告するはずです。そうでなければ「ウィンドウ自体がターゲットになります。しかし、ターゲットの要素がボタンであっても、アラート通知は「ウィンドウ自体がターゲットになっています」のみでした。ここに私のコードです:バニラJSのイベントターゲティングとjQueryの比較
バニラJS
let $ = document.querySelector.bind(document);
window.onclick = function(event) {
if(event.target != $('button')) {
alert('window itself is targeted');
} else {
alert('button element is targeted');
}
}
jQueryの
$(window).on('click', function(event) {
var $eventTarget = $(event.target);
if($eventTarget != $('button')) {
alert('window itself is targeted');
} else {
alert('button element is targeted');
}
});
jQueryのコードでは、私は、その実行はバニラJSと同様であるかどうかを確認するためにevent.target
で$(event.target)
を交換しようとしました何も変わっていない。それは私のコードの文法で、それが失敗するか、あるいは気づいていない間違ったことがあります。誰かが私にそれを指摘してくれることを願っています。
おかげでたくさん:) – jst16
ので、 '()'メソッドは(あなたは要素のHTMLタグを比較した)その一つの解をjst16 @ソリューション – jst16
です。クラス、ID、またはその他の属性を比較することもできます –