我有69首歌曲的列表,并且已经搜索了很多关于如何在i==0
时禁用“上一步”按钮并在i==68
时禁用下一个按钮,但没有运气。当i的值不是0而最后一个是
(最好避免使用jQuery)
var songs = [
"assets/Playlists/1.mp3",
"assets/Playlists/2.mp3",
"assets/Playlists/3.mp3",
];
var i = 0;
function createPlayer() {
var a = document.createElement("audio");
a.controls = true;
a.setAttribute("id", "au");
a.src = songs[i];
document.getElementById("demo").appendChild(a);
a.autoplay = true;
a.addEventListener("ended", nextItem);
document.getElementById("number").innerHTML = i;
}
function nextItem() {
i = i + 1;
document.getElementById("au").src = songs[i];
document.getElementById("number").innerHTML = i;
au.play();
}
function prevItem() {
i = i - 1;
document.getElementById("au").src = songs[i];
document.getElementById("number").innerHTML = i;
au.play();
}
function check() {
// ...
}
createPlayer();

* {
text-align: center;
}
button img {
height: 20px;
width: 20px;
}
button {
background-color: transparent;
outline: none;
border: none;
cursor: pointer;
}

<body onload="createPlayer(); check()">
<div id="demo"></div>
<button onclick="prevItem()" id="prev_btn">
<img src="assets/next-button.png">
<br>
</button> <button onclick="nextItem()"><img src="assets/next-button.png"></button>
<div id="number"></div>
</body>
&#13;
答案 0 :(得分:1)
我使用单个功能来更新两个按钮的禁用/启用状态(或隐藏它们,因为您似乎可能想要这样做)。
在启动时调用它,并在每次按钮后单击。
Request.QueryString["value"]
&#13;
var songs = [
"assets/Playlists/1.mp3",
"assets/Playlists/2.mp3",
"assets/Playlists/3.mp3"
];
var i = 0;
function createPlayer() {
var a = document.createElement("audio");
a.controls = true;
a.setAttribute("id", "au");
a.src = songs[i];
document.getElementById("demo").appendChild(a);
a.autoplay = true;
a.addEventListener("ended", nextItem);
document.getElementById("number").innerHTML = i;
enableButtons();
}
function nextItem() {
i = i + 1;
document.getElementById("au").src = songs[i];
document.getElementById("number").innerHTML = i;
enableButtons();
au.play();
}
function prevItem() {
i = i - 1;
document.getElementById("au").src = songs[i];
document.getElementById("number").innerHTML = i;
enableButtons();
au.play();
}
function enableButtons() {
var prev = document.getElementById('prev_btn'),
next = document.getElementById('next_btn');
prev.disabled = (i <= 0);
next.disabled = (i >= songs.length - 1);
// remove these lines to just disable, not hide
prev.style.display = (prev.disabled) ? 'none' : 'inline';
next.style.display = (next.disabled) ? 'none' : 'inline';
}
function check() {
}
createPlayer();
&#13;
* {
text-align: center;
}
button img {
height: 20px;
width: 20px;
}
button {
background-color: transparent;
outline: none;
border: none;
cursor: pointer;
}
&#13;
答案 1 :(得分:0)
使用jQuery:
<html>
<head>
<script>
var songs = [
"assets/Playlists/1.mp3",
"assets/Playlists/2.mp3",
"assets/Playlists/3.mp3",
];
var i = 0;
function createPlayer(){
var a =document.createElement("audio");
a.controls =true;
a.setAttribute("id", "au");
a.src = songs[i];
document.getElementById("demo").appendChild(a);
a.autoplay= true;
a.addEventListener("ended", nextItem);
document.getElementById("number").innerHTML = i;
}
function nextItem(){
i=i+1;
document.getElementById("au").src= songs[i];
document.getElementById("number").innerHTML = i;
au.play();
}
function prevItem(){
i=i-1;
document.getElementById("au").src= songs[i];
document.getElementById("number").innerHTML = i;
au.play();
}
createPlayer();
function Hb(){
var x =parseint($("#number").text());
if(x==0)
$("#prev_btn").hide();
else if(x>=songs.lenght-1)
$("#next_btn").hide();
}
$("#next_btn").click(Hb());
$("#prev_btn").click(Hb());
</script>
</head>
<style>
*{
text-align: center;
}
button img{
height: 20px;
width: 20px;
}
button{
background-color: transparent;
outline: none;
border: none;
cursor: pointer;
}
</style>
<body onload="createPlayer(); check()">
<div id="demo"></div>
<button onclick="prevItem()" id="prev_btn"><img src="assets/next-button.png">
<br>
</button> <button onclick="nextItem()" id="next_btn"><img src="assets/next-button.png"></button>
<div id="number"></div>
</body>
</html>
试试这个,它应该可行
没有jQuery:
<html>
<head>
<script>
var songs = [
"assets/Playlists/1.mp3",
"assets/Playlists/2.mp3",
"assets/Playlists/3.mp3",
];
var i = 0;
function createPlayer(){
var a =document.createElement("audio");
a.controls =true;
a.setAttribute("id", "au");
a.src = songs[i];
document.getElementById("demo").appendChild(a);
a.autoplay= true;
a.addEventListener("ended", nextItem);
document.getElementById("number").innerHTML = i;
}
function nextItem(){
i=i+1;
document.getElementById("au").src= songs[i];
document.getElementById("number").innerHTML = i;
au.play();
Hb();
}
function prevItem(){
i=i-1;
document.getElementById("au").src= songs[i];
document.getElementById("number").innerHTML = i;
au.play();
Hb();
}
createPlayer();
function Hb(){
var x =parseint(document.getElementById("number").value);
if(x==0)
document.getElementById("prev_btn").style.visibility="hidden";
else if(x>=songs.lenght-1)
document.getElementById("next_btn").style.visibility="hidden";
else {
document.getElementById("prev_btn").style.visibility="visible";
document.getElementById("next_btn").style.visibility="visible";
}
}
</script>
</head>
<style>
*{
text-align: center;
}
button img{
height: 20px;
width: 20px;
}
button{
background-color: transparent;
outline: none;
border: none;
cursor: pointer;
}
</style>
<body onload="createPlayer(); check()">
<div id="demo"></div>
<button onclick="prevItem()" id="prev_btn"><img src="assets/next-button.png">
<br>
</button> <button onclick="nextItem()" id="next_btn"><img src="assets/next-button.png"></button>
<div id="number"></div>
</body>
</html>