데이터 닫기는 요소를 완전히 제거합니다. 대신 jQuery의 .hide () 메서드를 사용하십시오.
빠른 수정 방법 :
인라인 자바 스크립트를 사용하여 다음과 같이 요소 onclick을 숨 깁니다.
<div class="alert" style="display: none">
<a class="close" onclick="$('.alert').hide()">×</a>
<strong>Warning!</strong> Best check yo self, you're not looking too good.
</div>
<a href="#" onclick="$('alert').show()">show</a>
http://jsfiddle.net/cQNFL/
그러나 이것은 당신이 게으른 경우에만 사용해야합니다 (유지 관리 가능한 앱을 원한다면 좋지 않습니다).
올바른 방법 :
요소를 숨기기위한 새 데이터 속성을 만듭니다.
자바 스크립트 :
$(function(){
$("[data-hide]").on("click", function(){
$("." + $(this).attr("data-hide")).hide()
// -or-, see below
// $(this).closest("." + $(this).attr("data-hide")).hide()
})
})
그런 다음 데이터 닫기를 마크 업에서 데이터 숨기기로 변경합니다. jsfiddle의 예 .
$("." + $(this).attr("data-hide")).hide()
이렇게하면 data-hide에 지정된 클래스의 모든 요소가 숨겨집니다. 즉 : data-hide="alert"
경고 클래스가있는 모든 요소를 숨 깁니다.
Xeon06 은 대체 솔루션을 제공했습니다.
$(this).closest("." + $(this).attr("data-hide")).hide()
가장 가까운 부모 요소 만 숨 깁니다. 이는 각 경고에 고유 한 클래스를 부여하지 않으려는 경우 매우 유용합니다. 그러나 경고 내에 닫기 버튼을 배치해야합니다.
jquery doc 에서 .closest 정의 :
집합의 각 요소에 대해 요소 자체를 테스트하고 DOM 트리의 상위 항목을 통해 위로 이동하여 선택기와 일치하는 첫 번째 요소를 가져옵니다.
alert
페이지 에서 동일한 클래스 (예 :)를 가진 모든 요소를 숨 깁니다 . 이에 대한 해결책은 콜백의 내용을이 줄로 바꾸는 것입니다.이 줄$(this).closest("." + $(this).attr("data-hide")).hide();
은 가장 가까운 상위 요소에만 영향을 미칩니다. 일반적으로 해제 버튼이 영향을주는 경고 내에 배치되므로 확인합니다.