열린 레이어 외의 모든 레이어를 닫는 건데요..
이건 잘 되지가 않네요.
말은 되는것 같은데...... (ㅋ)
Copy
<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개
채택된 답변
+20 포인트
ignaz
9년 전
이것만 봐서는 정확하게 답변드릴순 없으나 코드에 문제가 많습니다.
반복문을 이용하여 ready(), click() 이것만 1001번 실행이 됩니다.
페널을 한번에 숨기고 싶으면 class 또는 다른 태그에 감싸주셔야 됩니다.
<div id="wrapper">
<div class="panel"></div>
<div class="panel"></div>
...
</div>
$(document).ready(function() {
$("#wrapper .panel").hide();
});
조건문에는 같은 i를 비교하면 무의미한거 같네요.
정리를 하자면 php 반복문은 사용할 필요는 없고,
각각의 대상에 클릭 이벤트를 주는게 아니라
자식 선택자를 이용하여 해당 대상에게 슬라이드 효과를 주면 됩니다.
9년 전
열린 것 이외라면 이미 닫힌 거 아닌가요?
질문이 이해가 안 가네요.
그리고 스크립트는 저렇게 php를 넣어서 보여 주지 마시고 이미 렌더링이 끝난 화면의 html 코드를 그대로 복사해서 예를 드는 게 좋습니다.
9년 전
모든~ 을 이용할때는 class로 넣어주세요 id는 고유값이라서 한개만 가능합니다~
답변을 작성하려면 로그인이 필요합니다.