2014-09-19 2 views
0

'timelineTile'div를 열고 닫으려고합니다. 다른 사람이 열리면 닫고, 배경을 클릭하면 닫을 수 있습니다. 다른 사람이 클릭하면 배경을 얻을 수 있지만, div 자체를 클릭하면 div가 닫히는 ... 여기에 내 fiddle토글 클래스가 작동하지 않습니까?

내 코드;

$(function() { 
 
    $('.timelineTile').click(function (evt) { 
 
     evt.stopPropagation(); 
 
     $('.selected').children().removeClass('clicked'); 
 
     $(this).toggleClass('clicked'); 
 
    }); 
 

 

 
    $(document).click(function() { 
 
     $('.timelineTile').removeClass('clicked'); 
 
    }); 
 
});
.timelineTile.clicked{ 
 
    background:red; 
 
    width:500px; 
 
    height:300px; 
 
    -webkit-transition:height 1s, left 1s, -webkit-transform 1s; 
 
    transition:height 1s, left 1s, transform 1s; 
 
} 
 

 
.selected { 
 
    -webkit-transition:height 1s, left 1s, -webkit-transform 1s; 
 
    transition:height 1s, left 1s, transform 1s; 
 
} 
 

 

 
.timelineTile { 
 
    background:black; 
 
    color:white; 
 
    width:200px; 
 
    height:100px; 
 
    margin-bottom:20px; 
 
    -webkit-transition:height 1s, left 1s, -webkit-transform 1s; 
 
    transition:height 1s, left 1s, transform 1s; 
 
} 
 

 
.timelineTilehold { 
 
    background:pink; 
 
} 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<ul class="timelineTilehold"> 
 
    
 
    <li class="selected"><div class="timelineTile">hello 
 
    </div></li> 
 

 
<li class="selected"><div class="timelineTile">hello 
 
    </div></li> 
 

 
<li class="selected"><div class="timelineTile">hello 
 
    </div></li></ul>

+0

당신은 당신의 문서를 클릭 방법에 false를 반환해야합니다. 그렇지 않으면 이벤트 버블 링으로 인해 클릭 된 클래스가 다시 토글됩니다. –

+0

제거하면 다른 클래스가 클릭되면 닫힙니다. –

답변

3

사용 .not()은 그래서 당신은 클릭 요소에 클래스를 제거하지 마십시오

$('.timelineTile').click(function (evt) { 
    evt.stopPropagation(); 
    $('.selected').children().not(this).removeClass('clicked'); 

DEMO

+0

요구 사항은 아니지만 새로운 [Stack Snippets] (http : /blog.stackoverflow.com/2014/09/introducing-runnable-javascript-css-and-html-code-snippets/?cb=1), jsfiddler에 연결할 필요가 없습니다. – gunr2171

+0

@ gunr2171 그래, 나는 그것에 대해 알고 있지만 스택 스 니펫이 만드는 형식이 마음에 들지 않습니다. – Anton

+1

감사합니다 @Anton이 합리적입니다! :-) –

관련 문제