こんばんは
クリック等のイベントの動作を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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DirectXとOpenGLはどちらが動作...
-
【JavaScript】confirmのボタン...
-
読み取り専用が外れない
-
visualwave(smalltalk言語ソフ...
-
エクセルマクロ ガントチャート作成方法について
-
webシステムでchrome
-
HTMLでDBからデータを表形式で...
-
テーブルで作った表をボタン操...
-
チャットを作る
-
PHPを用いてPOSTし、リダイレク...
-
OVERLAPPED構造体が分かりませ...
-
呼び出し元のURLを知りたいのです
-
Ajaxでpostした内容のresponse...
-
Response.Write(変数)
-
saved from url=(0013)abou
-
Flickity で画像にリンクを貼る...
-
読み込み中に「Now Loading」を...
-
ブラウザ閉じたらサーバー処理...
-
Rを使う際、データを読み込む時...
-
jQueryの$.postの戻り値による...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【JavaScript】confirmのボタン...
-
DirectXとOpenGLはどちらが動作...
-
[JavaScript] preven...
-
webシステムでchrome
-
JQuery サーバー上にアップする...
-
読み取り専用が外れない
-
C言語のif文について教えてくだ...
-
DelphiでSelectDirectoryを..
-
ドラクエがプリセットされてるFOMA
-
gifcatの挙動について
-
ASP.netで作成したシステムのip...
-
エクセルマクロ ガントチャート作成方法について
-
【JavaScript】PS3で一部の構文...
-
imm(日本語入力)が上手く行きま...
-
WEBアプリで右クリックのカスタ...
-
非同期通信を使うタイミングが...
-
HTMLでDBからデータを表形式で...
-
saved from url=(0013)abou
-
リンクを押すとEXEファイルを実...
-
ASP.NET(VB)VBソースからJavas...
おすすめ情報