jQuery的slideUp / slideDown存在奇怪的问题

时间:2011-08-06 14:57:26

标签: javascript jquery slidedown slideup

我在网站上使用以下代码:

  // show tracks
  $('.content-playlist .track p').live('click', function() {
    var player_handle = $(this);
    $('.content-playlist .track .player').slideUp('slow', function() {
      player_handle.next().slideDown('slow');
    });
  });

首先应关闭网站上的所有音乐播放器(如果有的话),之后打开所选音乐播放器。

点击第一首曲目按预期工作。

但是我有一个奇怪的问题:

当点击第三首曲目时,它会打开,关闭并再次打开。 (不是我想要的)

一个例子是在线@:http://www.psykotaktyle.com/index.php?page=playlist

我无法找到我的代码有什么问题。非常感谢任何帮助!

修改

使用Chrome(第13版),IE9和FF4进行测试

2 个答案:

答案 0 :(得分:1)

DEMO

$('.player').hide();
$('.content-playlist .track p').live('click', function() {
    $('.player:visible').slideToggle(600);
    $(this).next('.player').slideToggle(600);
});

答案 1 :(得分:0)

这听起来像http://www.learningjquery.com/2009/01/quick-tip-prevent-animation-queue-buildup

中描述的动画排队

尝试:

$('.content-playlist .track .player').stop().slideUp('slow', function() {
      player_handle.next().stop().slideDown('slow');
    });