테스트 사이트 - 개발 중인 베타 버전입니다

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

따라하기 9년 전 조회 5,328

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

이건 잘 되지가 않네요.

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

 

</p><p><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></p><p>
 

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
i
9년 전

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

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

 

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

 

 

 

  ...

 

$(document).ready(function() {

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

});

 

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

 

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

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

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

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

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

질문이 이해가 안 가네요.

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

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

9년 전

모든~ 을 이용할때는 class로 넣어주세요 id는 고유값이라서 한개만 가능합니다~

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인