2010-03-15 64 views
3
// I am trying to apply an "onfocus="this.blur();"" so as to remove the dotted border lines around pics that are being clicked-on 
    // the effect should be applied to all thumb-nail links/a-tags within a div.. 

    // sudo code (where I am): 
    $(".box a").focus( // so as to effect only a tags within divs of class=box | mousedown vs. onfocus vs. *** ?? | javascript/jquery... ??? 
    function() 
    { 
     var num = $(this).attr('id').replace('link_no', ''); 
     alert("Link no. " + num + " was clicked on, but I would like an onfocus=\"this.blur();\" effect to work here instead of the alert..."); 

     // sudo bits of code that I'm after: 
     // $('#link_no' + num).blur(); 
     // $(this).blur(); 
     // $(this).onfocus = function() { this.blur(); }; 


    } 
); 

// the below works for me in firefox and ie also, but I would like it to effect only a tags within my div with class="box" 
    function blurAnchors2() 
      { 
       if (document.getElementsByTagName) { 
        var a = document.getElementsByTagName("a"); 
        for (var i = 0; i < a.length; i++) { 
          a[i].onfocus = function() { this.blur(); }; 
       } 
       } 
      } 
+3

不要這樣做!它使得使用非指向設備導航頁面成爲不可能。您將使人們無法使用鍵盤,取決於呼吸開關等。 – Quentin 2010-03-15 11:47:00

回答

2

不建議模糊。如果您所看到的只是隱藏焦點線,請使用此代替:

a[i].onfocus = function() { this.hideFocus = true; }; 

這將適用於所有版本的IE。對於其他瀏覽器(包括IE8在標準模式),可以設置outline CSS樣式隱藏焦點概述:

a { 
    outline: none; 
} 

這將使您的網頁更比鍵盤,因爲它需要集中模糊的元素友好。

1

我建議只使用CSS去除邊框。

img, a:active{ 
    outline: none; 
} 

還是有一個特定的原因,爲什麼必須使用JS?

+0

單獨的CSS無法在IE6和IE7中執行此操作。另外,':focus'比':active'更合適,因爲輪廓用於標記當前聚焦的元素。 – 2010-03-15 11:51:31

+1

但是他不希望只在點擊時才移除它嗎? 使用:active將仍然允許用戶查看所關注的內容,這對於非鼠標用戶更友好。 – 2010-03-15 11:53:57

+0

他的問題是關於在onfocus事件中使用'blur()',所以看起來他試圖阻止他們在焦點上,而不是鼠標點擊。取消輪廓的一點是您可以將自定義樣式應用於':focus'。 – 2010-03-15 11:57:11

3

謝謝你們 - 我已經爲CSS(a:focus):

img, a:focus{ 
    outline: none; 
} 

這似乎是正確的工作(黏合還在工作,當點擊邊框都不見了)我...在這兩個即和Firefox。將不得不現在翻新一些其他鏈接使用它...

再次感謝。