1

<article ul li>Wordpress の投稿で次の曲に変わる単純な HTML5 オーディオ プレイリスト (audio.js) に取り組んでいます。<article>そのため、複数のタグをトラバースして<ul li>、それぞれの と を取得するのに少し問題が.next()あり.prev()ます。これらのセレクターを使用することは最善の解決策ではないと考え始めています。

<script>
  $(function() { 
    // Setup the player to autoplay the next track
    var a = audiojs.createAll({
      trackEnded: function() {
        var next = $('article ul li').next();
        var title = $('img', this).attr("title");
            $("a.songtitle").text(title);
        if (!next.length) next = $('article ul li').first();
        audio.load($('a', next).attr('data-src'));
        audio.play();
      }
    });

    // Load in the first track
    var audio = a[0];
        first = $('article ul a').attr('data-src');
    $('article ul li').first();
    audio.load(first);

    // Load in a track on click
    $('article ul li').click(function(e) {
      e.preventDefault();
      var title = $('img', this).attr("title");
        $("a.songtitle").text(title);
      audio.load($('a', this).attr('data-src'));
      audio.play();
    });
    // Keyboard shortcuts
    $(document).keydown(function(e) {
      var unicode = e.charCode ? e.charCode : e.keyCode;
         // right arrow
      if (unicode == 39) {
        var next = $('article ul li').next();
        if (!next.length) next = $('ul li').first();
        next.click();
        // back arrow
      } else if (unicode == 37) {
        var title = $('img', this).attr("title");
            $("a.songtitle").text(title);
        var prev = $('article ul li').prev();
        if (!prev.length) prev = $('article ul li').last();
        prev.click();
        // spacebar
      } else if (unicode == 32) {
        audio.playPause();
      }
    })
  });
</script>

このコードを変更して、複数のタグを切り替え<article ul li>て次/前の曲にスキップするにはどうすればよいですか? どんな助けでも大歓迎です!ありがとうございました!

編集: これが私がやろうとしていることです。しかし、ご覧のとおり、各<article ul li>タグに曲をスキップしているわけではありません。Audio.js は自動的にすべての<a>タグを見つけ、data-src属性を取得して曲をロードします。http://jsfiddle.net/UkrZx/

4

2 に答える 2

0

JSFIDDLE

 $(function() { 
        // Setup the player to autoplay the next track
        var a = audiojs.createAll({
          trackEnded: function() {
            var next = $('article > ul li.playing').next();
            var title = $('img', this).attr("title");
                $("a.songtitle").text(title);
            if (!next.length) next = $('article > ul li').first();
            audio.load($('a', next).attr('data-src'));
            audio.play();
          }
        });

        // Load in the first track
        var audio = a[0];
            first = $('article > ul li a').attr('data-src');
        $('article > ul li').first();
        audio.load(first);

        // Load in a track on click
        $('article > ul li').click(function(e) {
          e.preventDefault();
          var title = $('img', this).attr("title");
            $("a.songtitle").text(title);
          audio.load($('a', this).attr('data-src'));
          audio.play();
        });
        // Keyboard shortcuts
        $(document).keydown(function(e) {
          var unicode = e.charCode ? e.charCode : e.keyCode;
             // right arrow
          if (unicode == 39) {
            var next = $('article > ul li.playing').next();
            if (!next.length) next = $('article > ul li').first();
            next.click();
            // back arrow
          } else if (unicode == 37) {
            var title = $('img', this).attr("title");
                $("a.songtitle").text(title);
            var prev = $('article > ul li.playing').prev();
            if (!prev.length) prev = $('article > ul li').last();
            prev.click();
            // spacebar
          } else if (unicode == 32) {
            audio.playPause();
          }
        })
      });

THIS SCRIPTを変更しようとしていたようです。Wordpress または AUDIO.JS スクリプトについて詳しく教えていただければ幸いです。親以外のものを認識したくないようですが<li>、コードで2番目の曲を再生することができます. 頑張ってください、これがお役に立てば幸いです。

マイナーな成果を編集...いくつかの編集(および更新されたフィドル)により、左矢印のみで両方の曲を再生できます。奇妙なことですが、それは進歩です。

于 2013-07-16T01:59:06.270 に答える