<a href="javascript:void(0)" onClick="aaaa();return false">あああああ</a>
と書いているのですが、もっとスマートに書けないものでしょうか?
jQueryを使っています。
anchorタグを使う限りは無理でしょうね。
buttonにするとかspanにするなどの代替措置を取るくらいでしょう。
SEO的にはanchorのほうがいいかもしれませんけど、
スクリプトに飛ばす時点でどうかと思いますし好みの問題でしょうね。
buttonだと基本的にはformが必要になってしまうので
spanにclassつけといてanchorみたいなstyleに整えれば良いでしょう。
<span class="anchor" onClick="aaaa();">あああああ</span>
URLは適当です。
clickイベントをbindしてpreventDefault()でページ遷移させないサンプル。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript"> $(function(){ $('#hoge').click(function(e){ e.preventDefault(); alert("iiiiii"); }); }); </script> </head> <body> <a href="" id="hoge">あああああ</a> </body> </html>
ありがとうございます。こういう手もあるんですね。
onclick=""に書いていることをhrefの中に入れてみる。なんてのはどうですか?
<a href="javascript:alert( 'href' );void( 0 );">あいうえお!!!</a> ~~~~~~~~~
void( 0 );はundefinedを返すために必要ですので注意してください。
undefined以外を返すと、
<a href="javascript:null;">あいうえお!!!</a> ~~~~
このサンプルでは真っ白のページに「null」と表示されてしまいます。
なるほど、これで動作すればそれもありですね。
ジャンプしないのだから、
<style type="text/css"></p> <p><!--</p> <p>a{</p> <p>color:#0000ff;</p> <p>text-decoration:underline;</p> <p>cursor:pointer;</p> <p>}</p> <p>a:hover{</p> <p>color:#ff0000;</p> <p>}</p> <p>a:active{</p> <p>color:#000000;</p> <p>}</p> <p>--></p> <p></style>
</head>
<body>
こういうことではないのでしょうか。
hover等はこちらで適当に装飾しました。
装飾の仕方はわかっていますが、余計に面倒になるので意味がないなと。
なるほど。やはりそうですか。見た目がリンクでないならそれもありですね。リンクならそれっぽくわざわざするのはナンセンスかなと思いますので、今のままでいきます。
ちなみにaタグでhrefを無しにしたら行けるのでは、と思いましたが、hrefがないとリンクにならないんですね。