Skip to content

<a>タグにonclick属性を使うときの書き方

  • tips

📅 December 03, 2013

⏱️2 min read

<a>タグにonclickを使おうと書き方を調べたらでてくるでてくる。 この件については、昔からよく言われているみたいですね。備忘録がてらめもめも。 なにやらちょっとだけ物議を醸してたようですね。

参考サイト様

■2007/7/24 某日記 - ☆href="#" onclick の悪習
■2007/7/31 まちゅダイアリー - 「href="#" onclick」について
■2007/8/1 to-R - Re:href="#" onclick の悪習 ← ドーナツ本で有名な西畑さんのブログ
■2010/6/9 American Life in the Summertime - Aタグにonclickを設定する場合の話
■2011/10/12 CodeNote.net - [JavaScript][html] a href=”” onclick の使い方
■2012/9/7 code14 - javascriptでaタグにonclickつけるときにreturn falseもつける

つまり…?

<a href="#" onclick="hogehoge">リンク</a>

これだとonclick属性でhogehogeが実行されたあとにhrefが参照されちゃう、 上例のようにhrefが"#"だとhogehoge実行後に余計にページ最上部にとんでしまうって話です。

以下の二つのように書くと良いみたい

<a href="javascript:void(0)" onclick="hogehoge">リンク</a>
<a href="#" onclick="hogehoge;return false;">リンク</a>

spanの代用もあるけど、なんか個人的にしっくりこないや

<span style="cursor: pointer" onclick="hogehoge">リンク</span>

人によって書き方がそれぞれで、これが正しい、それは間違いと主張がいろいろですが、今はどれが慣習として適切なんでしょうかね?

■2008/2/12 燈明日記 - [WEB] javascript:void(0)について

ちなみにこちら↑のサイト様によるとonclick属性でリンク処理をする場合は、onclick属性のリンク処理とhrefのリンク処理がかぶっちゃって悪さするため、javascript:void(0) と return false を併記するとよいとのこと。 あくまでもonclick属性でリンク処理するときの話ですかね。

ではでは!

← PrevNext →