이 질문에 대해 여러 차례 답변을했지만 향후 사용자를 위해보다 완전하고 확실한 답변을 추가 할 것이라고 생각했습니다. 주요 대답은 문제를 해결하지만 물건을 표시하거나 숨기는 다양한 방법 중 일부를 알고 이해하는 것이 좋습니다.
.
css ()를 사용하여 표시 변경
이것이 내가 다른 방법을 찾을 때까지 내가했던 방식입니다.
자바 스크립트 :
$("#element_to_hide").css("display", "none"); // To hide
$("#element_to_hide").css("display", ""); // To unhide
장점 :
단점 :
- 다른 것에 "display"속성을 사용하는 경우 숨기 전에 값을 하드 코딩해야합니다. 따라서 "인라인"이있는
$("#element_to_hid").css("display", "inline");
경우 기본적으로 "차단"또는 강제로 적용되는 다른 항목으로 돌아갑니다.
- 오타 자체를 빌려줍니다.
예 : https://jsfiddle.net/4chd6e5r/1/
.
addClass () / removeClass ()를 사용하여 표시 변경
이 예제를 설정하는 동안 실제로이 방법에 매우 결함이있는 몇 가지 결함이 발생했습니다.
CSS / 자바 스크립트 :
.hidden {display:none}
$("#element_to_hide").addClass("hidden"); // To hide
$("#element_to_hide").removeClass("hidden"); // To unhide
장점 :
- 때때로 숨 깁니다. 예제에서 p1을 참조하십시오.
- 숨기기를 해제하면 이전 표시 값을 사용하여 다시 돌아옵니다. 예제에서 p1을 참조하십시오.
- 모든 숨겨진 개체를 가져 오려면해야합니다
$(".hidden")
.
단점 :
- 표시 값이 html에 직접 설정된 경우 숨기지 않습니다. 예제에서 p2를 참조하십시오.
- 디스플레이가 css ()를 사용하여 자바 스크립트로 설정된 경우 숨기지 않습니다. 예제에서 p3을 참조하십시오.
- CSS 속성을 정의해야하므로 코드가 약간 더 많습니다.
예 : https://jsfiddle.net/476oha8t/8/
.
toggle ()을 사용하여 표시 변경
자바 스크립트 :
$("element_to_hide").toggle(); // To hide and to unhide
장점 :
- 항상 작동합니다.
- 전환 이전의 상태에 대해 걱정할 필요가 없습니다. 이것에 대한 명백한 사용은 토글 버튼입니다.
- 짧고 간단합니다.
단점 :
- 직접 관련이없는 작업을 수행하기 위해 전환중인 상태를 알아야하는 경우 상태를 확인하려면 더 많은 코드 (if 문)를 추가해야합니다.
- 이전의 단점과 비슷하게 숨길 목적으로 toggle ()이 포함 된 명령 집합을 실행하려고하지만 숨겨져 있는지 알 수없는 경우 검사 (if 문)를 추가해야합니다. 먼저 찾아서 이미 숨겨져 있다면 건너 뛰십시오. 예제의 p1을 참조하십시오.
- 앞의 두 가지 단점과 관련하여 구체적으로 숨기거나 구체적으로 표시하는 것에 대해 toggle ()을 사용하면 코드를 읽는 다른 사람이 전환 방법을 모르기 때문에 혼동 될 수 있습니다.
예 : https://jsfiddle.net/cxcawkyk/1/
.
hide () / show ()를 사용하여 표시 변경
자바 스크립트 :
$("#element_to_hide").hide(); // To hide
$("#element_to_hide").show(); // To show
장점 :
- 항상 작동합니다.
- 숨기기를 해제하면 이전 표시 값 사용으로 돌아갑니다.
- 당신은 항상 어떤 상태로 바꾸고 있는지 알 것입니다.
- 상태가 중요한 경우 상태를 변경하기 전에 가시성을 확인하기 위해 if 문을 추가 할 필요가 없습니다.
- 상태가 중요한 경우 전환하려는 상태에 대한 코드를 읽는 다른 사람들을 혼동하지 않습니다.
- 직관적입니다.
단점 :
- 토글을 모방하려면 먼저 상태를 확인한 다음 다른 상태로 전환해야합니다. 대신에 toggle ()을 사용하십시오. 예제의 p2를 참조하십시오.
예 : https://jsfiddle.net/k0ukhmfL/
.
전반적으로 토글이 필요하지 않으면 hide () / show ()가 가장 좋습니다. 이 정보가 도움이 되었기를 바랍니다.
return false
에서onclick
?