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

슬라이드토글...스크립트 질문입니다! 채택완료

주사쟝 6년 전 조회 3,151

</p>

<p><script> 

$(document).ready(function(){

    $("#tr_bt").click(function(){

        $("#tr_panel").slideToggle(100);

    });

});

</script></p>

<p>

 

위에처럼 드롭다운 스크립트를 만들었습니다.

아래 코드처럼 여러개를 추가하니 처음부분만 드롭다운이 되고 두번째는 안되는데

두번째,세번째 계속적으로 하려면 어떻게 해야 되나요..?

 

</p>

<p>                <tr id="tr_bt">

                    <td class="mining_table_td0">▼</td>

                </tr></p>

<p>                <tr>

                    <td style="padding:0; border:0;">

                    <div id="tr_panel">dddd
dddd
dddd
</div>

                    </td>    

                </tr></p>

<p>                <tr id="tr_bt">

                    <td class="mining_table_td0">▼</td>

                </tr></p>

<p>                <tr>

                    <td style="padding:0; border:0;">

                    <div id="tr_panel">dddd
dddd
dddd
</div>

                    </td>    

                </tr></p>

<p>

 

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

답변 2개

채택된 답변
+20 포인트

우선은 ID를 사용하지 마시고 Class 를 사용하셔야 합니다. 그이유를 글로 설명하자면 못할것은 없지만

이부분에 대해 공부해보시는것도 좋을 것 같아 따로 그 이유까지는 글로 남기지 않겠습니다.

 

</p>

<pre>
<script> 
$(document).ready(function(){
     // # <-은 아이디를 나타내는 부분이니 . <- 을 이용해 class로 변경하시고
    $("<span style="color:#e74c3c;">#</span>tr_bt").click(function(){ 
        $("#tr_panel").slideToggle(100);
    });
});
</script></pre>

<pre>
                <tr id="tr_bt" class="click1">
                    <td class="mining_table_td0">▼</td>
                </tr>
                <tr>
                    <td style="padding:0; border:0;">
                    <div id="tr_panel">dddd
dddd
dddd
</div>
                    </td>    
                </tr>
                <tr id="tr_bt" class="click2">
                    <td class="mining_table_td0">▼</td>
                </tr>
                <tr>
                    <td style="padding:0; border:0;">
                    <div id="tr_panel">dddd
dddd
dddd
</div>
                    </td>    
                </tr></pre>

<p> </p>

<p>

 

각각의 클래스에 따라 동작할 스크립트를 작성하시면 됩니다.

 

좀 더 깊이 들어가면 각각의 클릭 이벤트에 어떠어떠한 값을 어쩌구 저쩌구 해서 코드의 길이를 줄이고....

이런건 좀 더 공부하시면 될듯합니다.

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

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

아르키어드

일단 버튼을 같은 id로 여러개 주셨다는것부터 오류의 시작이기도 합니다.. 윗분말씀처럼 클래스로 주어서 해야하죠.. 근데 클릭하는 토글로 열리는 tr_panel 또한 전부 열리겠죠(실질적으로 tr_panel도 클래스로 주거나 id값을 다르게 주어야하긴 합니다만..)

여러가지 방법이있겠습니다만 tr_panel에 attr로 데이터를 입력해서 버튼을 클릭했을때 그 버튼에 해당하는 tr_panel을 슬라이트토글 시킨다거나, index값을 활용한다거나 해야겟죠.. 구조가 버튼의 부모에 tr_panel이 있다면 더 작성하기 편했겠지만요..

현재 구조 그대로 두고 시작하시려면 일단 tr_bt과 tr_panel을 전부 클래스로 변경하시고나서

</p>

<p>$(".tr_bt").on("click",function(){</p>

<p>    $(".tr_panel" , $(this).next()).stop().slideToggle();</p>

<p>})</p>

<p>

해보시기 바랍니다.. 

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

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

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

로그인