• ベストアンサー

クリックを押した時にリンク先へジャンプする

通常はクリックして、マウスを押してボタンから指を放すときにリンク先にジャンプする と思いますが、 放す時ではなく、押した瞬間にリンク先の別ページに移動させたいと思うのですが、 JavaScript を使うことになるかと思いますが、何か方法がありますでしょうか? onMouseDown を使うのかなっというところまでは、 調べてみたのですが、分かりませんでした。 別の方法でも構いません、何か方法があれば教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Ogre7077
  • ベストアンサー率65% (170/258)
回答No.2

特定条件(クラス名rapid)のリンクなら、押した瞬間に遷移させる例です。 <script> window.addEventListener('mousedown', function(ev){ var a = ev.target; if (a.href && a.classList.contains('rapid')) { ev.preventDefault(); a.click(); } }, false) </script> <a href="http://www.sony.co.jp" class=rapid>押した瞬間に遷移</a> <a href="http://casio.jp">普通の遷移</a> スクリプトが無くても、通常のリンクとして動作するのが特徴です

tetish
質問者

お礼

ありがとうございます!出来ました!! しかも1つのページ内で普通のリンクとの使い分けもできるなんて、最高です!!!ありがとうございました!

その他の回答 (2)

回答No.3

1行が好きなのなら。 /* @cc_on@set@_=@_jscript_version<9;*/document./*@if(@_)attachEvent('on'+@else*/addEventListener(/*@end*/'mousedown',function(b,c){c=b./*@if(@_)srcElement@else*/target/*@end*/;'A'!=c.tagName||!c.href||(location.href=(b./*@if(@_)returnValue=false@else*/preventDefault()/*@end*/,c.href))},!1); 「&」同じページにスクリプトがあるのなら?

tetish
質問者

お礼

ありがとうございました! す、すみません、私には記載が難しくて・・理解できませんでした。 でも、回答していただいたことにとても感謝しています。 本当にありがとうございました!

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

>押した瞬間 瞬間といってもリードタイムがあるので、押し続けないかぎりクリックと ほぼ同じだと思いますが? たとえばこんな感じでクリックをキャンセルすることはできます <script> try{ document.addEventListener ('mousedown',function(e){func(e)},true); document.addEventListener ('click',function(e){func(e)},true); }catch(e){ document.attachEvent('onmousedown',function(e){func(e)}); document.attachEvent('onclick',function(e){func(e)}); } function func(e){ var t = (e.srcElement || e.target); if(t.nodeName=="A"){ if(e.type=="mousedown"){ location.href=t.href; } if(e.preventDefault)e.preventDefault(); else e.returnValue = false; } } </script> <a href="http://www.yahoo.co.jp">yahoo</a>

tetish
質問者

お礼

出来ました!ありがとうございました!! 回答、感謝いたします!!!

関連するQ&A