我正在编写一个简单的HTML5音频播放列表(audio.js),它将在Wordpress <article ul li>帖子中更改为下一首歌曲。因此,我在遍历多个<article>标记和在.next()和.prev()上检索每个标签的<ul li>时遇到了一些困难。我开始认为使用这些选择器不是最好的解决方案。
<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>标记之间切换以跳到下一首/prev歌曲?任何帮助都将不胜感激!谢谢!
编辑:,这是我想做的。但正如您所看到的,它并不是跳过每个<article ul li>标记的歌曲。Audio.js自动查找所有<a>标记并获取data-src属性来加载歌曲。http://jsfiddle.net/UkrZx/
发布于 2013-07-18 20:29:49
不知道为什么它不会识别next/prev <article>元素,但是我将原来的Wordpress post内容改为只输出<li>元素之间的帖子。奇怪,但至少现在起作用了。
我的代码现在是这样的:http://jsfiddle.net/HxVaj/2/。
发布于 2013-07-16 01:59:06
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();
}
})
});看起来你想要修改这个剧本,我希望我能更多地了解Wordpress或者AUDIO.JS脚本来帮助你。它似乎不想识别父<li>之外的任何东西,但是我可以让它在代码中播放第二首歌。祝你好运我希望这能帮上忙。
编辑小成就..。有了几个编辑(和一个更新的小提琴),我可以让它播放两首歌,但只能用左箭头。奇怪,我知道..。但这是进步。
https://stackoverflow.com/questions/17666223
复制相似问题