이 글의 출처는 stackoverflow 이고 제가 영어를 잘하지 못해서 번역이 틀릴 수 있습니다.
오역은 댓글달아주시면 감사하겠습니다
html5 <a> 태그에서 자바스크립트 함수 호출하는 방법.
javascript:void(0)을 사용하는것을 권장합니다.
href="#" 을 사용하는 경우가 꽤 많이 있는데 이는 권장하지 않습니다.
이에는 3가지 이유가 있습니다.
첫번째는 개발자 팀 사이에 # 사용을 권장하면 필연적으로 다음과 같은 함수의 반환 값 (return false) 을 사용하게됩니다
function doSomething() {
//사용할 코드
return false;
}
하지만 개발자들은 onclick에서 return doSomething()을 사용하고 doSomething()을 사용하는 것을 잊어 버립니다.
두 번째 이유는 최종 반환 값이 false라는 점입니다. 호출 된 함수가 오류를 throw하면 실행되지 않습니다.
따라서 개발자는 호출 된 함수에서 오류를 적절히 처리하는 것을 기억해야합니다.
세 번째 이유는 onclick 이벤트 속성이 동적으로 할당되는 경우가 있기 때문입니다. 필자는 함수를 호출하거나 동적으로 할당 할 수있는 기능을 선호합니다.
즉, 특정 첨부 메소드 또는 다른 메소드에 대한 함수를 특별히 코딩하지 않아도 됩니다. 그러므로 HTML 마크 업에서 내 onclick (또는 무엇이든)은 다음과 같습니다.
onclick="someFunc.call(this)"
OR
onclick="someFunc.apply(this, arguments)"
javascript:void(0)를 사용하면 위 코드에서 발생할 문제를 피할 수 있으며 단점을 발견하지 못했습니다.
당신이 독창적 인 개발자라면 분명히 자신 만의 선택을 할 수 있습니다. 하지만 팀으로 일하고 있다면 다음을 고려하세요
href = "#" 를 사용하면 onclick에 항상 false가 포함되어 있는지 확인하고
호출 된 함수는 오류를 발생시키지는 않는지 체크하고
함수를 onclick 속성에 동적으로 연결하면 오류를 throw하지 않고 false를 반환하도록 신경써야합니다
하지만 이 코드는 모든 문제를 해결해 줄 것입니다
href="javascript:void(0)"
출처 : http://stackoverflow.com/questions/134845/which-href-value-to-use-for-javascript-links-or-javascriptvoid0/134957#134957
'개발 > javascript' 카테고리의 다른 글
jQuery 를 이용한 다른 페이지로 이동(redirect) 방법 (2) | 2016.11.26 |
---|---|
자바스크립트에서 form submit 하는 방법 (0) | 2016.11.24 |
자바스크립트에서는 왜 return false 를 쓰나요? (0) | 2016.11.24 |