열린 레이어 외의 모든 레이어를 닫는 건데요..
본문
열린 레이어 외의 모든 레이어를 닫는 건데요..
이건 잘 되지가 않네요.
말은 되는것 같은데...... (ㅋ)
<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 반복문은 사용할 필요는 없고,
각각의 대상에 클릭 이벤트를 주는게 아니라
자식 선택자를 이용하여 해당 대상에게 슬라이드 효과를 주면 됩니다.
모든~ 을 이용할때는 class로 넣어주세요 id는 고유값이라서 한개만 가능합니다~
열린 것 이외라면 이미 닫힌 거 아닌가요?
질문이 이해가 안 가네요.
그리고 스크립트는 저렇게 php를 넣어서 보여 주지 마시고 이미 렌더링이 끝난 화면의 html 코드를 그대로 복사해서 예를 드는 게 좋습니다.
답변을 작성하시기 전에 로그인 해주세요.