해당 레이아웃 클릭시 그 레이아웃만 나오게 하고 싶은데요 ㅠ,ㅠ 채택완료
소스 보시면 두개의 [미리보기],[수정] 다른 id값 레이아웃이 있습니다.
클릭을 하게 되면 해당 창이 나오게 되는데
문제는 [미리보기]를 클릭하면 [수정] 의 레이아웃도 창이 뜨는겁니다 ㅠ,ㅠ
한창만 나와야 하는데 2개의 창이 동시에 뜨네요 ㅠ.ㅠ
분명 id값을 다르게 지정해주었는데 왜그렇죠?
ㅠ,ㅠ
Copy
<a href="#" id="page_layer_open" style="color:#0099CC">[미리보기]</a> //클릭시 해당 id="layer1" 창 열기 <a href="#" id="page_edit_open" style="color:#0099CC">[수정]</a> //클릭시 해당 id="layer2" 창 열기 <div class="layer"> <div class="bg"></div> <div class="layer_area" id="layer1"> // id값이 layer1인 창 <div> <iframe src='주소1'></iframe> </div> <div style='text-align:right'><a href='#' id='layer_close'><img src='닫기이미지' /></a></div> </div> </div> <div class="layer"> <div class="bg"></div> <div class="layer_area" id="layer2"> // id값이 layer2인 창 <div> <iframe src='주소2' ></iframe> </div> <div style='text-align:right'><a href='#' id='layer_close'><img src='닫기이미지' /></a></div> </div> </div> <script> function layer_open(el){ $('.layer').fadeIn();var temp = $('#' + el);temp.fadeIn(); if (temp.outerHeight() < $(document).height() ) temp.css('margin-top', '-'+temp.outerHeight()/2+'px'); else temp.css('top', '0px'); if (temp.outerWidth() < $(document).width() ) temp.css('margin-left', '-'+temp.outerWidth()/2+'px'); else temp.css('left', '0px'); } $('#page_layer_open').click(function(){ layer_open('layer1'); }); $('#page_edit_open').click(function(){ layer_open('layer2'); }); $('.layer .bg').click(function(){ $('.layer').fadeOut(); }); $('#layer_close').click(function(){ $('.layer').fadeOut(); }); </script>
답변 1개
채택된 답변
+20 포인트
11년 전
layer1 이 class=layer 로 감싸져 있고
layer2 도 class=layer 로 감싸져 있는데
function layer_open(el){
$('.layer').fadeIn(); <-- 이게 실행 되면서 2개 모두 보이는겁니다
위 코드 수정
vv= el.replace('layer','') -1;
$('.layer').eq(vv).fadeIn();
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인