こんばんは
クリック等のイベントの動作を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ランキング
-
jQueryでシンセサイザーを作っ...
-
switch文のswitch(n)の部分を複...
-
セレクトボックスを2つ選択して...
-
①入力フォーム→②確認表示画面→③...
-
追加ボタンを押した際に ok ボ...
-
二次元配列の全要素の全要素を...
-
【GAS】WEBアプリでハイパーリ...
-
【Google Apps Script】「ライ...
-
プログラミング 学習
-
HTMLでサブフレームから親のス...
-
ジャバスクリプトについて。
-
プログラムについて。
-
Q&A掲示板の入力フォームに文字...
-
メールフォームの日付入力フォ...
-
二次元配列を使って順位をだす...
-
iOSのみダブルタップが必要
-
jsで質問です。 displayプロパ...
-
var exports = exports || {}; ...
-
HTMLタグに複数のクラスを設定...
-
Googleフォームで選択肢に応じ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【JavaScript】confirmのボタン...
-
DirectXとOpenGLはどちらが動作...
-
ASP.netで作成したシステムのip...
-
JQuery サーバー上にアップする...
-
[JavaScript] preven...
-
gifcatの挙動について
-
imm(日本語入力)が上手く行きま...
-
C言語のif文について教えてくだ...
-
ASP.NET 動的に行を増やすTable
-
webシステムでchrome
-
更新プログラムの必要性は?
-
DelphiでSelectDirectoryを..
-
リサイクルショップの「動作OK...
-
読み取り専用が外れない
-
JQueryでのAJAXで困ってます
-
【JavaScript】PS3で一部の構文...
-
windows11ではアンドロイドアプ...
-
身のこなしの意味は動作ですか?
-
WEBページのリフレッシュについて
-
amazon販売の、microSD2枚→SDア...
おすすめ情報