2014-09-19 80 views
0

我正在尝试使'timelineTile'div打开和关闭,如果另一个打开时也关闭,并且在单击背景时也关闭,如果单击另一个并且背景但我可以'如果div本身被点击,就不会得到div来关闭...这里是我的fiddleToggleclass不工作?

我的代码;

$(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。否则,事件冒泡将导致被点击的类再次切换 – 2014-09-19 15:05:49

+0

如果我删除它,然后停止'关闭,如果另一个被点击' – 2014-09-19 15:08:04

回答

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 2014-09-19 15:09:07

+0

@ gunr2171是的,我知道它,但我不喜欢栈片段创建的格式。 – Anton 2014-09-19 15:09:33

+1

谢谢@安顿有道理! :-) – 2014-09-19 15:11:57