
こんばんは
クリック等のイベントの動作をpreventDefaultを使って動作させたいのですが、上手く行きません
どこか間違っているのでしょうか?
例えば、このサイトの右上の「質問・相談する」のクリックに対して下記コードを実行したのですが、クリックが無効化されません
document.getElementsByClassName("mainBtn headerBtn")[0].addEventListener("click",function(event){event.preventDefault();},{passive:false});
なぜでしょうか?
宜しくお願い致します
Chrome: 84.0.4147.89
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
mainBtnかつheaderBtnのクラスがついた一番最初のHTML要素だけ処理すればよいのでしょうか?
document.querySelector(".mainBtn.headerBtn").addEventListener("click",function(event){
event.preventDefault();
},{passive:false});
No.1
- 回答日時:
こんにちは
preventDefaultはブラウザのデフォルト動作をキャンセルさせるものです。
例えば、リンク要素をクリックした際のリンク動作などがこれに当たります。
https://developer.mozilla.org/ja/docs/Web/API/Ev …
一方で、ここのソースをご覧になればわかると思いますが、ご質問の部分にリンク要素は設定されてはいるものの、クリックの際の動作はデフォルトのリンクによるものではありません。
(href属性に設定されている先に遷移しているわけではない)
ご質問の要素のクリックで、どの様にして遷移しているのかは確認していませんが、多分、スクリプトによるものではないでしょうか?
ちなみに、(↑)の参照先にも説明がありますが、「キャンセル不可のイベント」に対してもpreventDefaultの効果はありません。
さて、想像するところ、ここのページでは、上位要素でイベントを監視してジャンプする仕組みをとっているのではないかと思いましたので、試しにイベントの伝搬を停止させてみたところ、クリックしても質問入力のページには飛ばなくなりますね。
document.getElementsByClassName("mainBtn headerBtn")[0].addEventListener("click",function(event){event.stopImmediatePropagation();});
(Chrome 84.0.4147.89 にてテスト)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonで、tkinterとpillowの組み合わせ 2 2022/08/16 17:42
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- Excel(エクセル) Excel2010 VBAが特定動作で実行出来なくなる 7 2022/12/29 14:26
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
- その他(プログラミング・Web制作) google formsを使ったタスク依頼フォーム作成におけるご相談 1 2023/06/22 15:55
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jsで質問です。 ボタンが二つ存...
-
jQueryで同じクラス名のものを...
-
画像の表示位置
-
switch文のswitch(n)の部分を複...
-
Colorboxがうまく設置できません
-
フォームが空欄の時にフォーム...
-
セレクトを全て選択されていな...
-
sessionStorageを調べています。
-
スマホ上で、左右スワイプで次...
-
セレクトボックスを2つ設けて選...
-
GoogleChart 階層ごとのブロッ...
-
タグを教えてください。
-
ラジオボタンを複数選択したと...
-
jsで質問です。 formをsubmitし...
-
2025年相性がいい人のサイトの...
-
CookieをWebStoeageに変える
-
Adobe acrobat proでフォームを...
-
Outlookのアカウントがあるとメ...
-
jqueryのselect2で検索欄の文字...
-
<tr>指定した表の行要素をボ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【JavaScript】confirmのボタン...
-
DirectXとOpenGLはどちらが動作...
-
DelphiでSelectDirectoryを..
-
ASP.netで作成したシステムのip...
-
読み取り専用が外れない
-
windows11ではアンドロイドアプ...
-
ドラクエがプリセットされてるFOMA
-
ASP.NET 動的に行を増やすTable
-
javascriptでバックグラウンド...
-
更新プログラムの必要性は?
-
続続・文字をクリックすると詳...
-
C言語のif文について教えてくだ...
-
Windowsでsafariに最も近い動き...
-
visualwave(smalltalk言語ソフ...
-
webシステムでchrome
-
顧客ネットワークで接続がタイ...
-
Firefoxでステータスバーのテキ...
-
imm(日本語入力)が上手く行きま...
-
javascriptで書かれたHPをどう...
-
時計表示について(リアルタイ...
おすすめ情報