JavaScript 링크, "#"또는 "JavaScript : void (0)"에 사용해야하는 "href"값을 사용해야합니다.
질문
다음은 JavaScript 코드를 실행하는 것의 유일한 목적이있는 링크를 구축하는 두 가지 방법입니다.기능, 페이지로드 속도, 유효성 검사 목적 등의 관점에서 더 좋습니다.
myjsfunc 함수 () { 경고 ( "myjsfunc"); } JavaScript 코드 실행
또는
myjsfunc 함수 () { 경고 ( "myjsfunc"); } JavaScript 코드 실행
답변
JavaScript : void (0)을 사용합니다.
세 가지 이유.개발자 팀 중 #의 사용을 필연적으로 이에 필연적으로 사용하는 것은 다음과 같이 호출 된 함수의 반환 값을 사용하여 일부로 이어집니다.
function doSomething() {
//Some code
return false;
}
그러나 그들은 onClick에서 반환 dosomething ()을 사용하는 것을 잊어 버리고 Dosomething ()을 사용하는 것을 잊어 버리고 있습니다.
# 회피를 피하는 두 번째 이유는 최종 반환이 거짓이라는 것입니다.호출 된 함수가 오류가 발생하면 실행되지 않습니다.따라서 개발자는 호출 된 함수에서 적절하게 오류를 처리하는 것을 기억해야합니다.
세 번째 이유는 OnClick Event 속성이 동적으로 할당 된 경우가 있습니다.저는 기능을 호출하거나 하나의 첨부 파일이나 다른 방법으로 기능을 코딩하지 않고도 동적으로 할당 할 수있는 것을 선호합니다.따라서 HTML 마크 업에서 onclick (또는 아무것도)에서 다음과 같습니다.
onclick="someFunc.call(this)"
또는
onclick="someFunc.apply(this, arguments)"
JavaScript 사용 : void (0) 위의 모든 두통을 모두 피하고 아래쪽의 예를 찾지 못했습니다.
그래서 당신이 고독한 개발자라면, 당신은 당신이 자신의 선택을 분명히 만들 수 있지만, 팀으로 일하면서 당신은 어느 곳에서나 일해야한다면,
href = "#"을 사용하십시오. onClick은 항상 return false를 포함하는지 확인하십시오.마지막으로 호출 된 함수가 오류를 throw하지 않고 onclick 속성에 동적으로 함수를 동적으로 첨부하는 경우 오류를 던지지 않고 false를 반환합니다.
또는
href = "자바 스크립트 : void (0)"사용
두 번째는 명확하게 의사 소통이 훨씬 쉽습니다.
답변
어느 것도 아니다.
실제 URL을 가질 수있는 경우 HREF로 사용하는 것을 의미합니다.누군가가 새 탭을 열거 나 JavaScript가 비활성화 된 경우 링크를 클릭하면 onClick이 실행되지 않습니다.
이 경우 가능한 경우 JavaScript와 해당 클릭 이벤트 핸들러가있는 문서에 앵커 태그를 삽입해야합니다.
나는 이것이 항상 가능하지는 않습니다. 그러나 제 의견으로는 공용 웹 사이트를 개발할 때 노력해야합니다.
눈에 띄지 않는 자바 스크립트 및 진보적 인 향상 (Wikipedia)을 확인하십시오.
답변
링크 또는 링크 또는onclick 속성이 포함 된 다른 것이 무엇이든간에 5 년 전 괜찮 았습니다. 이제는 나쁜 연습이 될 수 있습니다.이유는 다음과 같습니다.
It promotes the practice of obtrusive JavaScript - which has turned out to be difficult to maintain and difficult to scale. More on this in Unobtrusive JavaScript.
You're spending your time writing incredibly overly verbose code - which has very little (if any) benefit to your codebase.
There are now better, easier, and more maintainable and scalable ways of accomplishing the desired result.
눈에 띄지 않는 자바 스크립트 방법
HREF 속성이 전혀 없어!좋은 CSS 재설정은 누락 된 기본 커서 스타일을 처리하여 비 문제가되지 않습니다.그런 다음 자바 스크립트 논리가 자바 스크립트로서 자바 스크립트로 유지되면 자바 스크립트 기능을 사용하여 JavaScript 기능을 첨부하십시오. 마크 업 대신에 자바 스크립트 대신에 자바 스크립트로는 자바 스크립트가 유지됩니다.Blackboxed 구성 요소 및 템플릿.대규모 JavaScript 응용 프로그램 아키텍처에서 더 자세한 정보
간단한 코드 예제
// cancel click 이벤트를 클릭하십시오 $ ( '. 취소 작업'). 클릭 (함수 () { 경고 ( '취소 조치 발생!'); }); // Internet Explorer 6 및 Internet Explorer 7 용 Shim Shim. $ (document.body) .on ( '호버', 'a', function () { $ (이) .togGleClass ( '호버'); }); a {커서 : 포인터;파란색;} A : 호버, A.Hover {텍스트 장식 : 밑줄;}
나는 솔직히 제안하지 않을 것입니다.그 동작에 대해서는 양식에 일치시키는
button.link { 디스플레이 : 인라인 블록; 위치 : 상대; 배경색 : 투명; 커서 : 포인터; 테두리 : 0; 패딩 : 0; 색상 : # 00F; 텍스트 장식 : 밑줄; 글꼴 : 상속; }
이렇게하면 onClick을 지정할 수 있습니다.또한 요소 태그의 onClick 속성을 사용하지 않고 스크립트를 통해 바인딩을 제안합니다.유일한 Gotcha는 비활성화 할 수없는 이전 IE의 PSUEDO 3D 텍스트 효과입니다.
요소를 사용해야하는 경우 JavaScript : void (0);이미 언급 된 이유로
OnClick 이벤트가 실패 할 경우 항상 가로 챌 것입니다. 잘못된로드 호출이 발생하지 않거나 해시 변경을 기반으로 다른 이벤트를 트리거하지 않습니다. 해시 태그가 예기치 않은 동작을 유발할 수 있습니다 (OnClick Throws)에서 누르기가 떨어지면 적절한 낙하 동작이 아니면 탐색 기록을 변경하려는 경우를 피할 수 있습니다.
참고 : 클릭이 실제로 수행 할 것인가를 보여주는 추가 표시기로 사용될 수있는 JavaScript : void ( 'reprems 123 삭제')와 같은 문자열로 0을 교체 할 수 있습니다.
답변
첫 번째 것은 사용자가 JavaScript가 비활성화 된 경우에 따라 수행 할 수있는 실제 링크와 이상적입니다.JavaScript가 실행되면 클릭 이벤트가 실행되지 않도록 false를 반환하십시오.
<a href="#" onclick="myJsFunc(); return false;">Link</a>
Angular2를 사용하면이 방법으로 작동합니다.
클릭하십시오 클릭하십시오.
https://stackoverflow.com/a/45465728/2803344.
출처:https://stackoverflow.com/questions/134845/which-href-value-should-i-use-for-javascript-links-or-javascriptvoid0
최근댓글