2010-12-01 4 views
1

프로젝트에 대해 CSS & jQuery를 사용하여 간단한 토글을 사용하려고합니다. 내 문제는 한 항목이 열려 있고 다른 항목이 클릭되었을 때입니다. 이 아이콘을 클릭하면 아이콘이 변경되어 사용자가 펼치거나 접을 수 있음을 볼 수 있습니다 (+ -). 하나를 클릭하면 열려있는 아이콘이 원하는대로 닫히지 만 아이콘은 닫힌 아이콘의 경우 +로 다시 변경되지 않습니다.간단한 CSS 및 jQuery로 토글하여 상태 표시 아이콘과 관련된 문제!

도스 누구나 그 해결책이 있습니까 ??

내 파일은 다음과 같습니다 :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<link rel="stylesheet" type="text/css" media="print" href="print.css" /> 
<title>Simple Toggle with CSS &amp; jQuery by Soh Tanaka</title> 
<style type="text/css"> 

.container { 
width:200px; 
min-height:490px; 
position:absolute; 
top: 120px; 
left:810px; 
background-color:#f4f3f3; 
padding:5px; 
} 

h2.trigger { 
padding: 0 0 0 20px; 
margin: 0 0 5px 0; 
background: url(pics/PlusMinus.gif) no-repeat; 
height: 16px; 
line-height: 16px; 
width: 250px; 
font-size: 16px; 
font-weight: normal; 
float: left; 
} 
h2.trigger a { 
color: #000; 
} 

h2.active { 
background-position: left bottom; 
} 



</style> 
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> 

<script type="text/javascript"> 
$(document).ready(function(){ 
//Hide (Collapse) the toggle containers on load 
$(".toggle_container").hide(); 
//Slide up and down & toogle the Class on click 

$("h2.trigger").click(function(){ 
$(this).toggleClass("active").next().slideToggle("slow"); 
$(this).siblings().next("div.toggle_container").toggleClass("active").slideUp("slow"); 


});return false; 
}) 
</script> 



</head> 

<body> 

<div class="container"> 
<h2 class="trigger"><a href="#">Property</a></h2> 
<div class="toggle_container"> 

    <a href="#" id="">1</a><br /> 
    <a href="#"id="">2</a> 
    <br /> 
    <a href="#" id="">3</a> 
    <br /> <br /> 
</div> 

<br /><br /> 
<h2 class="trigger"><a href="#">Hotel</a></h2> 
<div class="toggle_container"> 
    <p>Praesent duis vel similis usitas camur, nostrud eros opes verto epulae feugiat ad. Suscipit modo magna letalis amet et tego accumsan facilisi, meus. Vindico luptatum blandit ulciscor mos caecus praesent sed meus velit si quis lobortis praemitto, uxor. </p> 
    </div> 

<br /><br /> 
<h2 class="trigger"><a href="#">Other</a></h2> 
<div class="toggle_container"> 
    <p>Praesent duis vel similis usitas camur, nostrud eros opes verto epulae feugiat ad. Suscipit modo magna letalis amet et tego accumsan facilisi, meus. Vindico luptatum blandit ulciscor mos caecus praesent sed meus velit si quis lobortis praemitto, uxor. </p> 
    </div> 


    </div> 

</body> 
</html> 

난 당신이 도움이 될 수 있기를 바랍니다.

감사 사라

+0

관련 코드 만 게시하면 더 많은 답변을 얻을 수 있습니다. 예를 들어, 스타일 정보는 필요하지 않습니다. –

답변

0

당신은 확실히 accordion 효과를 찾고 있습니다. jQuery UI 아주 간단한

=)

+0

감사합니다.하지만 한 번에 열어 볼 수있는 사람이 필요합니다. 즉, 한 사람이 열려 있고 다른 사람이 클릭되면 열려있는 사람이 닫아야합니다. 아이콘을 -로 변경하십시오. –

+0

오. 재미 있습니다 ... htat에 대해 생각하게하겠습니다. –

0

여러 가지 방법으로이 작업을 수행하지만, 기존의 설정을 사용하여 ... CSS를 조금 변경할 수 있습니다

: 스크립트에서 다음

h2.trigger { 
padding: 0 0 0 20px; 
margin: 0 0 5px 0; 
background-image: url(plus.png); 
background-repeat:no-repeat; 
height: 16px; 
line-height: 16px; 
width: 250px; 
font-size: 16px; 
font-weight: normal; 
float: left; 
} 

$("h2.trigger").click(function(){ 
$(this).toggleClass("active").next().slideToggle("slow").css('background-image','url(minus.png)'); 
$(this).siblings().next("div.toggle_container").toggleClass("active").slideUp("slow").css('background-image','url(plus.png)'); 
}); 

이미지를 분리하면 더 쉽게 변경할 수 있으며, URL을 바꿔서 background:으로 바꿔서 결과가 혼합되었습니다. 스크립트에서 새 이미지에 CSS 변경 사항을 추가했습니다.

Jquery $.css()

일부 대안 :

를 사용하여 하나의 이미지, 그리고 (스프라이트 시트에 따라 X 또는 Y) CSS의 배경 위치를 변경합니다.

사용 jQuery를 아코디언과 아이콘이 라인으로 jQuery를 ThemeRoller 아이콘 필름을 사용하십시오 :

$(".selector").accordion({ icons: { 'header': 'ui-icon-plus', 'headerSelected': 'ui-icon-minus' } }); 

jQuery accordion

또는 jsTree 모든 미쳐 - 이는 또는 정확한 것은 당신하지 않을 수 있습니다 찾고 있었다.

1

감사합니다. 이와 같이 :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
<link rel="stylesheet" type="text/css" media="print" href="print.css" /> 
<title>Simple Toggle with CSS &amp; jQuery by Soh Tanaka</title> 
<style type="text/css"> 

.container { 
    width:200px; 
    min-height:490px; 
    position:absolute; 
    top: 120px; 
    left:810px; 
    background-color:#f4f3f3; 
    padding:5px; 
    } 

h2.trigger { 
    padding: 0 0 0 20px; 
    margin: 0 0 5px 0; 
    background: url(pics/PlusMinus.gif) no-repeat; 
    height: 16px; 
    line-height: 16px; 
    width: 250px; 
    font-size: 16px; 
    font-weight: normal; 
    float: left; 
} 
h2.trigger a { 
    color: #000; 
} 

h2.active { 
background-position: left bottom; 
} 



</style> 

<script src="js/jquery.js" type="text/javascript"></script> 
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> 

<script type="text/javascript"> 
$(document).ready(function(){ 
    //Hide (Collapse) the toggle containers on load 
    $(".toggle_container").hide(); 
//Slide up and down & toogle the Class on click 

$("h2.trigger").click(function(){ 

if ($('h2.trigger').hasClass("active")) { 
      $('h2.trigger').removeClass("active"); 
     } else { 
      $(this).addClass("active"); 
     } 
     var $nextDiv = $(this).next(); 
     var $visibleSiblings = $nextDiv.siblings('div:visible'); 

     if ($visibleSiblings.length) { 
      $(this).addClass("active"); 
      $visibleSiblings.slideUp('fast', function() { 
       $nextDiv.slideToggle('fast'); 
      }); 
     } else { 
      $nextDiv.slideToggle('fast'); 
     } 
});return false; 
}) 

</script> 


</head> 

<body> 

<div class="container"> 

    <h2 class="trigger"><a href="#">Property</a></h2> 
    <div class="toggle_container"> 

      <a href="#" id="">1</a><br /> 
    <a href="#"id="">2</a> 
    <br /> 
    <a href="#" id="">3</a> 
    <br /> 
    </div> 
    <br /> 
    <br /> 
    <h2 class="trigger"><a href="#">Hotel</a></h2> 
    <div class="toggle_container"> 
      <p>Praesent duis vel similis usitas camur, nostrud eros opes verto epulae feugiat ad. Suscipit modo magna letalis amet et tego accumsan facilisi, meus. Vindico luptatum blandit ulciscor mos caecus praesent sed meus velit si quis lobortis praemitto, uxor. </p> 
     </div> 

    <br /><br /> 

    <h2 class="trigger"><a href="#">Other</a></h2> 
    <div class="toggle_container"> 
      <p>Praesent duis vel similis usitas camur, nostrud eros opes verto epulae feugiat ad. Suscipit modo magna letalis amet et tego accumsan facilisi, meus. Vindico luptatum blandit ulciscor mos caecus praesent sed meus velit si quis lobortis praemitto, uxor. </p> 
     </div> 


    </div> 

</body> 
</html>