2013-04-18 73 views
1

HTML的jQuery的slideToggle回调函数和toggleclass

<div class="a"> 
    <div class="b">CLICK</div> 
    <div class="c"></div> 
</div> 
<div class="a"> 
    <div class="b">CLICK</div> 
    <div class="c"></div> 
</div> 
<div class="a"> 
    <div class="b">CLICK</div> 
    <div class="c"></div> 
</div> 

jQuery的

$('.c').hide(); 
$('.b').click(function(){ 
    $(this).next('.c').fadeToggle(); 

    if($('.b').eq(0).is(this)){ 
    $(this).toggleClass('yellow'); 
} 
}); 

ONLINE SAMPLE

如何让我一次slideToggle结束再开始toggleclass,像第1箱,我d一旦fadeToggle完成,就会喜欢它变成黄色

回答

3

您可以使用fadeToggle的回调函数:

工作演示:http://jsfiddle.net/Kqc2B/

$('.b').click(function() { 
    var that = this; 
    $(this).next('.c').fadeToggle(function() { 
     if ($('.b').eq(0).is(that)) { 
      $(that).toggleClass('yellow'); 
     } 
    }); 
}); 
+1

布鲁沃':''增加了演示+1好看后你loong时间 – 2013-04-18 04:12:45

+1

@Tats_innit嗨兄弟:),谢谢,你在哪里男人?好久不见。 – undefined 2013-04-18 04:16:43

+0

我们是否可以这样做,第一次点击可以立即发生(快速),并使用第二次点击的回调函数? – olo 2013-04-18 04:24:33

1

您可以使用fadeToggle提供完整的回调选项,一旦动画完成

它会被称为
$('.c').hide(); 
$('.b').click(function(){ 
    var $this = $(this); 
    $this.next('.c').fadeToggle(function(){ 
     if($('.b').eq(0).is($this)){ 
      $this.toggleClass('yellow'); 
     } 
    }); 
}); 

演示:Fiddle