私はdiv
とその親div
を持っています。親div
をクリックすると、アクションを実行します。 div全体がクリック可能です。jQuery:preventDefault()/ return falseはスクリプトを停止しません
子div
には、別の機能が付属しています。クリックすると、親はその機能を実行してはいけません。
これは、子のdivはそのコンテンツとしてimg
を持って
if ($(e.target).hasClass('prevent-choise')) {
e.preventDefault();
return;
return false;
}
// here is the rest of the code for parent element that should not execute when clicking child element (.prevent-choise)
クリックし、両方のクラスprevent-choise
を持っていたものをチェックするための私のJSコードです。クリックすると、親に対して実行された機能はまだ実行されますが、ときどきのみ実行されます。私はこの背後にある論理を理解できません。
親はCSSでposition: relative
であり、子はposition: absolute
とz-index: 10
です。
クリックした内容を正確に把握し、それに応じて行動する方法はありますか?
はあなたがfalse
を返していない
https://developer.mozilla.org/en-US/docs/Web/API/Event/stopPropagation – David
@Davidこれは動作しません。 event.stopPropagation()のjQueryドキュメンテーションを見ると、それは私がすでに行っているfalseを返すことと同じことです。 –
上記のコードではreturn falseが返されます。したがって、上記のreturn文が関数の実行を終了するため、あなたは "falseを返す"ことはありません。 –