2009-06-24 5 views
1

ie6でリンクのクラス/状態を通常に戻すことについて質問があります。私は:アクティブを使用して、ユーザーがクリックしたときにスパンの背景を変更します。リンクのターゲットはjavascript:void(0)に設定されているので、リンクをクリックするだけでJS関数が呼び出されます。 しかし、ユーザーがマウスボタンを離すと、リンクのa:activeステートが削除され、バックグラウンドはnormalに戻されますが、ie6ではバックグラウンドは元の状態に戻ります。それは私が設定した落ち込んだ背景をアクティブに保ちます。a:ie6の積極的な問題

これを修正する方法についてご意見はありますか?

答えて

4

IE6では、「アクティブ」は「フォーカス」に類似していることがあります。 DOMオブジェクトは、別の要素がフォーカスを受け取るか、またはぼやけてしまうまで「アクティブ」のままです。あなたがblur()を呼び出すリンクにはJavaScript onMouseUpのイベントを追加した場合ときにユーザーのマウスボタンのリリース、それがアクティブな状態を解除する必要があります

<a href="whatever">Link!</a> 
... 
</body> 
<script type="text/javascript"> 

    function handleMouseup() { 
     window.event.srcElement.blur(); 
    } 

    if(ie6) { 
     var links = document.getElementsByTagName('a'); 
     for(var i=0;i<links.length;i++) { 
      links[i].onmouseup = handleMouseup; 
     } 
    } 
</script> 

これは、あなたが望む任意のHREF(ジャバスクリプトを使用できることを確認します:無効(0を)、#、何でも)

+0

素晴らしい、完璧に動作します! – Garrett

-2

IE6でhref = "#"を使用すると、同じ問題が発生しました。ほとんどのリンクでjavascript:void(0)を使用してIE7とFFで正常に動作します。 javascript:void(0)for#を置き換えるブラウザが動作しています。

+0

これを行うと(href = "#"を使用)、onClickハンドラで何らかのアクションを実行すると、インラインハンドラまたは呼び出しからfalseを返すことによって、 event.preventDefault)リンクをクリックすると、ページの上部に移動します。 – jimr

+0

"#"ブラウザをページの一番上にあるデフォルトアンカーにジャンプします。ユーザーがまったくスクロールダウンすると、これは非常に混乱します。 –

+0

まあ、それはIE6を処理するための簡単な簡単な解決策でした... –

関連する問題