-
1:ID:1y24kr · 2017-07-23

#質問 JavaScriptを使用したクリックイベントで、要素はaタグ!!というような風習がありますが、これって絶対にaタグじゃないとダメな理由があるんでしょうか?

単純にカーソルを指ボタンにするためにaタグを使うだけならば、cursor: poiner;で問題解決だと思います。これからはdiv要素とかで実装しようと思います。問題ないですか?

※poin*terが不適切ワードになるので、poinerにしてます。

12 件の回答

2:ID:Te1S2Y · 2017-07-23

そもそも、そんな風習なんてあんの?リンクを貼る必要のない要素はaタグにしないだろうし、リンクが貼られていない要素にクリックイベントをリッスンさせることは普通にあると思うけど

3:ID:SCJULw · 2017-07-23

あなたがそれをdivするのはかまわないが
人が見たらプークスクスですよ

4:ID: · 2017-07-23

Re:3
なぜですか?

大手のサービスのソースでは、
そのボタンにあたる下層ページが存在する場合にはaタグを入れてますが、
ただのハンバーガーメニューアイコンの場合buttonタグを採用していたりします。

5:ID:2yaUVf · 2017-07-23

Re:2
同意、どこの村の風習だろうね・・・

6:ID:27iV5k · 2017-07-23

aタグにイベントを設定するのはレガシーな方法だから、それ以外でもまったく問題ないよ。
実際、aタグ使い人いるよね。つまり、古い知識から更新していない人。
闇雲にaタグ使う人見ると、不勉強な人だなあーって思う。

7:ID:isNY21 · 2017-07-23

SEOとかの関係あるんじゃね。googleの中の人じゃないから知らないけれど。

クリックイベントと言っても色々ありますよね。ボタンだったら素直にbuttonタグ使う方が分かりやすくなるし。メニューだったらulとliにaタグ仕込ませる方法が普通だし(今だからこそJavascriptが無い環境というのも特異だけど、昔々jsが使えない場合の環境も考慮してナビにはaタグ使って組む配慮ってのがあった気もする)

話がずれるけど、昔々safari(iOS系)にaタグのhref属性を入れておかないと、clickエベント付けても反応がなくなる仕様みたいなものがあった様な気がする。(https://stackoverflow.com/questions/12207180/mobile-safari-and-jquery-events-nothing-is-firing

8:ID:G6j.G5 · 2017-07-23

HTMLの記述については、JavaScriptとは切り離して、HTMLの文法として妥当かどうかを中心に考えるべきかと思います。
あくまで、JavaScriptはドキュメントツリーから目的のNodeを選択しているに過ぎず、そこに厳格なルールは存在しません。
社内・プロジェクトに規約が存在しているのであれば、それに従えばよいのではないでしょうか。

9:ID: · 2017-07-23

Re:7
Twitterでは、aタグにhref設定してますね!

10:ID:Te1S2Y · 2017-07-23

Re:6
aタグにイベント設定するのを一律レガシーな方法と言ってしまうきみもどうかと思うが。

11:ID:G6j.G5 · 2017-07-23

Re:6
HTMLの記述的に<a>タグを使うことが適切であれば、その要素をイベントターゲットにすることは全く問題ありません。
特定のHTMLタグとJavaScriptを組み合わせたときに、HTMLの記述方法が変わるということはないと思います。
少なくともW3C勧告にも、ECMAScriptの言語仕様にもそのような記述を見たことがありません。

12:ID:27iV5k · 2017-07-24

Re:11
aタグ使っちゃいけないって一言もいってないんだが。。。

13:ID:Os7Z6G · 2017-07-24

divタグでもいいと思いますが、クリックイベントがあることを明示するためにaタグやbuttonタグにしていますね。

コメントの受付は終了しました。

一緒に読まれている質問

ページ上部に戻る