【JavaScript】クリックイベントが親要素に伝播しないようにする方法
- 2019.08.16
- JavaScript
- JavaScript, メニュー開閉, 伝播, 画面クリック, 親要素
例えば、メニューボタンを押すとメニューが開き、もう一度押すと閉じるというようなトグルボタンを設置する時、メニューを開いた状態で画面のどこかをクリックすると、メニューが閉じるという仕様になっている事が多い。
そこで自分も、そういう仕様を実装しようと、body
などにクリック判定をつけて、画面のどこかをクリックした時メニューを閉じるように実装した。
しかしこれでは、メニューボタンを押したとき、親要素のbody
のクリック判定が反応してしまい、メニューボタンが開かないという現象があった。
解決方法
メニューボタン要素が押された時、クリックイベントが親要素に伝播しないようにする。
$(document).on( 'touchstart click','#menu', function(e){ e.stopPropagation(); });
-
前の記事
JavaScriptでウィンドウサイズを取得して全画面表示 2019.08.16
-
次の記事
【Javascript】$.ajaxを使ってサーバ(PHP)にデータを渡す方法 2019.08.27
コメントを書く