언제 JavaScript에서 '거짓을 반환'해야합니까?
언제 그리고 왜 return false
JavaScript로해야합니까?
종종와 같은 이벤트 처리기에서 onsubmit
false를 반환하면 실제로 발생하지 않도록 이벤트에 알리는 방법입니다. 따라서이 onsubmit
경우 양식이 제출되지 않았 음을 의미합니다.
나는 당신이 종종 '거짓을 돌려줘야한다'는 사실을 언급하고 있다고 추측합니다. 이벤트 핸들러의 문장, 즉
<a href="#" onclick="doSomeFunction(); return false;">...
'거짓을 돌려라' 이 경우 href = "#"로 표시된대로 브라우저가 현재 위치로 점프하는 것을 중지합니다. 대신 doSomeFunction () 만 실행됩니다. 앵커 태그에 이벤트를 추가하려고 할 때 유용하지만, 클릭 할 때마다 브라우저가 각 앵커로 위아래로 점프하고 싶지는 않습니다.
이벤트 전파 를 중지하는 데 사용됩니다 . click 이벤트 핸들러와 함께 두 가지 요소가 모두있는 경우 (예 :)
-----------------------------------
| element1 |
| ------------------------- |
| |element2 | |
| ------------------------- |
| |
-----------------------------------
내부 요소 (element2)를 클릭하면 1과 2 요소 모두에서 클릭 이벤트가 트리거됩니다.이를 "이벤트 버블 링"이라고합니다. element2에서만 이벤트를 처리하려는 경우, 이벤트 핸들러는 이벤트 전파를 중지하기 위해 false를 리턴해야합니다.
또 다른 예는 링크 클릭 핸들러입니다. 링크 양식 작동을 중지하려는 경우. onclick 핸들러를 추가하고 false를 리턴 할 수 있습니다. 이벤트가 기본 핸들러로 전파되는 것을 중지합니다.
어 ... 부울 함수에서 'true'아님을 나타내는 방법은 어떻습니까?
또한 "js, 'return false;'를 사용하는시기를 검색 한 후이 페이지를 방문했습니다. 다른 검색 결과 중에는 Chris Coyier의 CSS-Tricks 사이트에서 훨씬 더 유용하고 간단하게 발견 된 페이지가 있습니다. 'return false;'의 차이점 그리고 'e.preventDefault ();'
그의 기사의 요지는 :
function () {return false; }
// 동일하다
함수 (e) {e.preventDefault (); e.stopPropagation (); }
그래도 전체 기사를 읽는 것이 좋습니다.
업데이트 : return false 사용의 장점을 주장한 후; e.preventDefault ()를 대체합니다. & e.stopPropagation (); 내 동료 중 한 명이이 기사에서 설명한 것처럼 false 반환은 콜백 실행을 중지한다고 지적했습니다. jQuery Events : Return False 사용 중지 (Mis) .
jQuery의 each
함수를 사용할 때 true 또는 false를 반환하는 것은 의미가 있습니다. 의사를 참조하십시오
더 나은 질문은 부울 반환 값 집합을 평가하는 경우 true / false를 사용하지 않는 이유입니다 . 내 말은, 당신은 아마 true / null, true / -1, 다른 기타를 가질 수 있습니다. 대체 할 자바 스크립트 "false"값이지만 왜 그렇게하겠습니까?
기능에 착용 된 기능이 있거나 (일부 테스트에 의해) 일부 기능을 중지하려는 경우에만 false를 리턴하십시오. 예를 들어 "onsubmit"끝에 return false를 사용하십시오.
앵커 태그에서 자바 스크립트 코드를 트리거하려면 자바 스크립트 (pseudo-protocol) 대신 onclick 핸들러를 사용해야합니다. onclick 핸들러 내에서 실행되는 자바 스크립트 코드는 true 또는 false (또는 evalues가 true 또는 false 인 표현식)를 태그 자체로 다시 반환해야합니다. true를 반환하면 앵커의 HREF가 일반 링크처럼 따라옵니다. false를 반환하면 HREF가 무시됩니다. 이것이 "거짓을 돌려주는 이유"입니다. 은 종종 onclick 핸들러 내 코드의 끝에 포함됩니다.
return false를 사용하여 문제가 발생하지 않도록합니다. 따라서 제출시 스크립트를 실행하는 경우 false를 리턴하면 제출이 작동하지 않습니다.
함수에서 return 문이 호출되면이 함수의 실행이 중지됩니다. 지정된 경우 지정된 값이 함수 호출자에게 리턴됩니다. 식이 생략되면 undefined가 대신 반환됩니다.
자세한 내용은 MDN 문서 페이지를 참조하십시오return
.
또한이 짧고 흥미로운 링크는 https://www.w3schools.com/jsref/event_preventdefault.asp를 통해 읽습니다.
정의와 사용법
preventDefault () 메소드는 이벤트가 취소 가능한 경우 이벤트를 취소합니다. 즉, 이벤트에 속하는 기본 조치가 발생하지 않습니다.
예를 들어, 다음과 같은 경우에 유용 할 수 있습니다.
Clicking on a "Submit" button, prevent it from submitting a form
Clicking on a link, prevent the link from following the URL
참고 : 모든 이벤트가 취소 가능한 것은 아닙니다. cancelable 속성을 사용하여 이벤트가 취소 가능한지 확인하십시오.
참고 : preventDefault () 메소드는 DOM을 통한 이벤트 전파를 막지 않습니다. 이를 처리하려면 stopPropagation () 메소드를 사용하십시오.
참고 URL : https://stackoverflow.com/questions/855360/when-and-why-to-return-false-in-javascript
'Programing' 카테고리의 다른 글
Node.js에서 외부 프로그램을 실행하는 방법은 무엇입니까? (0) | 2020.07.01 |
---|---|
파일 내용 대신 파일 이름을“grep”하는 방법은 무엇입니까? (0) | 2020.07.01 |
C ++에서 포인터를 참조로 캐스트 / 변환하는 방법 (0) | 2020.07.01 |
IE9에서 Adobe 글꼴이 CSS3 @ font-face와 작동하도록 설정 (0) | 2020.07.01 |
유형 삭제 기술 (0) | 2020.07.01 |