0

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

  // 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 (v13)、IE9 和 FF4 测试

4

2 回答 2

1

演示

$('.player').hide();
$('.content-playlist .track p').live('click', function() {
    $('.player:visible').slideToggle(600);
    $(this).next('.player').slideToggle(600);
});
于 2011-08-07T14:06:40.090 回答
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');
    });
于 2011-08-06T15:01:39.457 回答