2012-01-05 7 views
1

Google 페이지에는 클릭 핸들러를 동적으로 부착하는 수많은 앵커 태그가 있습니다. 그런 경우 마크에서 앵커 태그를 유지하는 가장 좋은 방법은 무엇입니까?기본 URL없이 앵커 태그를 유지하는 좋은 방법

현재 우리는 그들 중 일부는 클릭 핸들러와 연결되지 않을 수 있습니다로

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

우리는 HREF에 대한 무효 값을 필요로합니다.

+0

절대 _best_ 것은 깨끗하고 읽을 수있는 HTML 코드를 유지 것이라고 분명히 JS 이벤트 핸들러와 동일한 작업을 수행하는 URL이어야합니다. 편집 : 불가능하다면 #을 사용하십시오. – powerbuoy

+0

# 사용은 누군가가 클릭하면 문제가됩니다. – ChrisOdney

+1

그럼 이벤트 핸들러에서 false를 반환하거나 이벤트 객체의 preventDefault() 메소드를 사용하여 링크의 기본 동작을 방지해야합니다. – powerbuoy

답변

0

Ommit href를-속성을 참조 DOM 이벤트 취소에 대한 자세한 내용은 1.7

$(document).delegate("a.yourSelector", "click", function(){ 
    //your code 

    return false; 
}); 

사전과 온 클릭을 할당 할 때 또한 커서를 설정 요소의 "스타일"을 "포인터"로 바꾸십시오. 그렇지 않으면 JS가 비활성화 된 사용자는 요소를 클릭 할 때 혼동을 느끼며 아무 일도 일어나지 않습니다.

+0

앵커와 href가 아닌 href를 비교하면 커서 : 포인터 유일한 차이점을 스타일? 부정확 한 href가 내 마음에 왔고 다른 브라우저에서 어떻게 작동하는지 확신 할 수 없었습니다. – ChrisOdney

+0

특별한 경우에는 어떤 차이점도 보이지 않습니다. href 속성을 사용하여 특수 커서 만 사용하십시오. CSS를 사용하여 수행 할 수 있습니다 (실제로는 -element를 사용할 필요가 없습니다. 임의의 요소 일 수 있음) –

1
+0

http://stackoverflow.com/questions/1357118/javascript-event-preventdefault-vs-return-false –

+0

@rfausak - 고마워 - 내 대답에 추가 –

0

더 단순한 코드는 다음과 같습니다

<a href='#' class='do-stuff'>Link</a> 

은 "#"기호는 href 속성에 넣어

jQuery(document).ready(function() { 

    jQuery(".do-stuff").click(function() { 
    alert("clicked"); 
    return false; // disables default link action 
    }); 

}); 
관련 문제