0

Web サイトで次のコードを使用します。

  // 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');
    });
  });

最初にサイト上の音楽プレーヤー (存在する場合) を閉じてから、選択したプレーヤーを開きます。

最初のトラックをクリックすると、期待どおりに機能します。

しかし、私は奇妙な問題を抱えています:

3 番目のトラックをクリックすると、開いて閉じ、再び開きます。(私が欲しいものではない)

例はオンライン @: 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 に答える