2010-03-15 3 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

답변

2

흐리게 처리하지 않는 것이 좋습니다. 모두 포커스 줄을 숨기는 것으로 보이는 경우 다음을 사용하십시오.

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

이것은 모든 IE 버전에서 작동합니다. (표준 모드에서 IE8을 포함한) 다른 브라우저의 포커스를 숨길 수 outline CSS 스타일을 설정할 수 있습니다 설명 :

a { 
    outline: none; 
} 

이 페이지는 초점을 맞출 필요로하는 요소를 흐리게보다 쉬운 더 많은 키보드를 만들 것입니다.

1

테두리 만 제거하려면 CSS 만 사용하는 것이 좋습니다.

img, a:active{ 
    outline: none; 
} 

또는 JS를 사용해야하는 구체적인 이유가 있습니까?

+0

IE6 및 IE7에서는 CSS만으로는이 작업을 수행 할 수 없습니다. 또한,': focus'는 윤곽선이 현재 포커스 된 요소를 표시하는 데 사용되므로': active'보다 더 적합합니다. –

+1

하지만 클릭했을 때만 제거하고 싶지 않았습니까? : active를 사용하면 여전히 포커스가있는 것을 볼 수 있습니다. 마우스가 아닌 사용자에게는 더 친숙합니다. –

+0

그의 질문은'onfocus' 이벤트에서'blur()'사용에 대해 묻고 있습니다. 그래서 마우스 클릭이 아닌 포커스를 잡으려고합니다. 윤곽선을 제거하는 요점은': focus'에 사용자 정의 스타일을 대신 적용 할 수 있다는 것입니다. –

3

고마워 - 나는 CSS를 위해 갈 (a:focus) :

그것은 바로 작동하는 것 같군
img, a:focus{ 
    outline: none; 
} 

(탭 이동은 여전히 ​​작동하고 클릭하면 테두리가 사라) 모두 ... 나를 위해 즉 파이어 폭스. 지금은 그것을 사용하는 다른 링크를 개조해야합니다 ...

다시 한번 감사드립니다.

관련 문제