javascript – 单击时显示元素,不活动时再次隐藏

我已经设置了一个JSfiddle,我试图显示和隐藏一些文本.
当您单击任何“staff”元素并在动画结束后,我在每个类中显示的文本显示.当用户再次单击“staff”元素时,文本会隐藏/淡出.

正在进行的工作在这里http://jsfiddle.net/tJugd/3571/

HTML:

CSS:

.slide{
    height:568px;
    overflow: hidden;
}
.staff{
    -webkit-user-select: none;
    -webkit-user-drag: none;
    -webkit-tap-highlight-color: rgba(0,0);
    touch-action: none;
    -webkit-transform-origin: 0px 0px 0px;
    opacity: 1;
    -webkit-transform: scale(1,1);
    width:33%;
    height:568px;
    background:red;
    float: left;
}
.staff-matt{
    background:red;
    Box-shadow: rgba(0,0.298039) 4px 4px 10px 0px;
}
.staff-shail{
    background:white;
    Box-shadow: rgba(0,0.298039) 4px 4px 10px 0px;
}
.staff-leah{
    background:red;
    Box-shadow: rgba(0,0.298039) 4px 4px 10px 0px;
}

#text1,#text3{
    position:relative;
    background-color:white;
    width:50%;
}

JS:

$('.staff').click(function(){
    if($(this).hasClass('clicked')){
        $('.staff').animate({width:'33%'});
    } else {
        $('.staff').not(this).animate({width:'0%'});
        $(this).animate({width:'100%'});
    }
    $(this).toggleClass('clicked');
});
最佳答案
$('.staff').click(function(){
    if($(this).hasClass('clicked')){
        $('.staff').finish().animate({width:'33%'},function() {
          $("[id^=text]").fadeOut()
        });
    } else {
        $('.staff').not(this).finish().animate({width:'0%'});
        $(this).finish().animate({width:'100%'},function() {
          $("[id^=text]").fadeIn()
        });
    }
    $(this).toggleClass('clicked');
});

jsfiddle http://jsfiddle.net/tJugd/3575/

相关文章

vue阻止冒泡事件 阻止点击事件的执行 <div @click=&a...
尝试过使用网友说的API接口获取 找到的都是失效了 暂时就使用...
后台我拿的数据是这样的格式: [ {id:1 , parentId: 0, name:...
JAVA下载文件防重复点击,防止多次下载请求,Cookie方式快速简...
Mip是什么意思以及作用有哪些