열린 레이어 외의 모든 레이어를 닫는 건데요..

열린 레이어 외의 모든 레이어를 닫는 건데요..

QA

열린 레이어 외의 모든 레이어를 닫는 건데요..

본문

열린 레이어 외의 모든 레이어를 닫는 건데요..

이건 잘 되지가 않네요.

말은 되는것 같은데...... (ㅋ)

 


<script> 
<?php for ($i=0; $i <= 1000; $i++) { ?>
$(document).ready(function(){
 $("#panel<?=$i?>").hide();
    $("#flip<?=$i?>").click(function(){
  
  /* 현재 $i 가 둘다 동일하다면, */
  if ($("#panel<?=$i?>") == $("#panel<?=$i?>")) {
   $("#panel<?=$i?>").slideToggle("fast");
  }
  else {
   alert("동일한 경우에 해당되지 않음");
   $("#panel<?=$i?>").hide();
  }
  
    }); 
});
<?php } ?>
</script>
 

이 질문에 댓글 쓰기 :

답변 3

이것만 봐서는 정확하게 답변드릴순 없으나 코드에 문제가 많습니다.

반복문을 이용하여 ready(), click() 이것만 1001번 실행이 됩니다.

 

페널을 한번에 숨기고 싶으면 class 또는 다른 태그에 감싸주셔야 됩니다.

<div id="wrapper">

  <div class="panel"></div>

  <div class="panel"></div> 

  ...

</div>

 

$(document).ready(function() {

$("#wrapper .panel").hide();

});

 

조건문에는 같은 i를 비교하면 무의미한거 같네요.

 

정리를 하자면 php 반복문은 사용할 필요는 없고,

각각의 대상에 클릭 이벤트를 주는게 아니라

자식 선택자를 이용하여 해당 대상에게 슬라이드 효과를 주면 됩니다.

열린 것 이외라면 이미 닫힌 거 아닌가요?

질문이 이해가 안 가네요.

그리고 스크립트는 저렇게 php를 넣어서 보여 주지 마시고 이미 렌더링이 끝난 화면의 html 코드를 그대로 복사해서 예를 드는 게 좋습니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 16,797
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT