プロが教えるわが家の防犯対策術!

通常はクリックして、マウスを押してボタンから指を放すときにリンク先にジャンプする
と思いますが、

放す時ではなく、押した瞬間にリンク先の別ページに移動させたいと思うのですが、
JavaScript を使うことになるかと思いますが、何か方法がありますでしょうか?

onMouseDown を使うのかなっというところまでは、
調べてみたのですが、分かりませんでした。
別の方法でも構いません、何か方法があれば教えてください。

よろしくお願いします。

A 回答 (3件)

特定条件(クラス名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>

スクリプトが無くても、通常のリンクとして動作するのが特徴です
    • good
    • 0
この回答へのお礼

ありがとうございます!出来ました!!

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

お礼日時:2013/10/28 13:16

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);

「&」同じページにスクリプトがあるのなら?
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/10/28 13:15

>押した瞬間



瞬間といってもリードタイムがあるので、押し続けないかぎりクリックと
ほぼ同じだと思いますが?

たとえばこんな感じでクリックをキャンセルすることはできます

<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>
    • good
    • 0
この回答へのお礼

出来ました!ありがとうございました!!

回答、感謝いたします!!!

お礼日時:2013/10/28 13:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!