2010-05-22 3 views
7

href (자바 스크립트 기반)가 앵커처럼 동작하는 가장 좋은 크로스 브라우저 방법은 무엇입니까?href가없는 앵커

<a href="javascript:void(0)">link</a> 

업데이트 :은 링크 된 문서에서 알 수 있듯이

+3

어떤 의미로 앵커로 동작합니까? 커서가 있고 마우스 오버시 밑줄이 쳐져 있습니까? 그렇다면 CSS를 통해 일을하는 것이 좋습니다. – R0MANARMY

답변

17

할 - 아무것도 링크, 즉도 이동하지 않습니다 ... 가장 눈에 띄는 사람은 앵커로 #을 사용하는 것입니다하지만 페이지의 도약을 수 있습니다

<a href="javascript:undefined">link</a> 

물론, 정의되지 않은이 다시 정의되었습니다 않는 : void(0) 반환 undefined 때문에, (신의 음식에 의해 지적), 사실로 위의 코드를 작성하는 것이 좋습니다.

+1

이것은 void 메소드가 의도 한 것이 아닙니다. [출처] (https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/void) – SimonDever

5

이 뛰어하지 않을 것이다 : 그들은, 그러나, 영혼이 파괴 매우 추한 있습니다

​<a href="#null">Click</a> 
​<a href="#n">Click</a> 
<a href="#undefined">Click</a>​ 

합니다.

+8

+1 "영혼을 파괴하는" –

3

클릭 이벤트에 반응하는 경우 #hash 또는 다른 URL이 무시 될 때 false를 반환하고 href에있는 항목이 모두 반환되는지 확인하십시오.

<a href="#anything" onclick="doSomething(); return false;">link</a> 
1

아마이도 OK입니다 :

<a href="javascript:;">link</a> 
6

당신은 앵커에 관련된 클릭 핸들러에서 거짓를 반환해야합니다. 주어진 HTML :

document.getElementById('example').onclick = customAnchorReturn; 
function customAnchorReturn() { 
    // do stuff 
    return false; 
} 

또는 사용하여 jQuery를 :

<a id="example" href="/whatever"/> 

JS가 같아야합니다

$('a#example').click(function(){ 
    // do stuff 
    return false; 
}); 

을 이러한 방법으로는 JS는 눈에 거슬리지되며 경우에 JS를 사용할 수 없습니다 앵커는 여전히 작동합니다.