问:我已经把自己弄糊涂了。当我单击我的下一个按钮(或停止按钮)时,它不会删除上一个项目上的“当前”类,因此它保持粉红色。这可能是显而易见的。
playlist.js
函数 Playlist () {
此。歌曲= []; 这个。nowPlayingIndex = 0 ; }播放列表。原型。添加=功能(歌曲){这个。歌曲。推(歌); }; 播放清单。原型。播放=功能(){ var currentSong = this 。歌曲[
这个。nowPlayingIndex ];
currentSong 。播放(); }; 播放清单。原型。stop = function (){ var currentSong = this 。歌曲[这个。nowPlayingIndex ]; currentSong 。停止(); }; 播放清单。原型。next = function (){ this 。停止(); 这个。nowPlayingIndex
++ ;
如果(此。nowPlayingIndex ===此。歌曲。长度){此。nowPlayingIndex = 0 ; }这个。播放(); }; 播放清单。原型。renderInElement =函数(列表){列表。innerHTML = “” ; 对于(var i = 0 ; i <
这个。歌曲。长度; 我++ ) {
清单。innerHTML + = this 。歌曲[ i ]。toHTML (); } };
app.js
var playlist = new Playlist ();
VAR hereComesTheSun =新曲(“太阳出来了” ,“披头士” ,“2:54” ); var WalkingOnSunshine =新歌曲(“在阳光下行走” ,“卡特里娜” ,“ 3:43” );var manOfSteel =新电影(“钢铁侠” ,2013年,“ 2:23:00” );播放列表。
hereComesTheSun );
播放列表。添加(walkingOnSunshine );
播放列表。添加(manOfSteel ); var playlistElement = document 。getElementById (“播放列表” ); 播放列表。renderInElement (playlistElement ); var playButton = document 。getElementById (“ play” ); playButton 。onclick = function (){播放列表
。播放();
播放列表。renderInElement (playlistElement ); } var nextButton = document 。getElementById (“ next” ); nextButton 。onclick = function (){播放列表。next (); 播放列表。renderInElement (playlistElement ); } var stopButton = document 。getElementById (“ stop” ); 停止按钮
。onclick = function () {
播放列表。停止(); 播放列表。renderInElement (playlistElement ); }
media.js
功能 Media (标题, 持续时间) {
this 。标题=标题; 这个。持续时间=持续时间; 这个。isPlaying = false ; }媒体。原型。play = function (){ this 。isPlaying = true ; }; 媒体。原型。停止=功能(){
这个。isPlaying = 停止;
};
song.js
功能 歌曲(标题, 艺术家,时 长) {
媒体。致电(this ,title ,duration ); 这个。艺术家=艺术家; }歌。prototype =对象。创建(媒体。原型); 歌。原型。toHTML = function (){ var htmlString =
'<li' ;
如果(此。IsPlaying模块){ htmlString + = '类= “当前”' ; } htmlString + = '>' ; htmlString + = this 。标题; htmlString + = '-' ; htmlString + = this 。艺术家; htmlString + = '<span class =“ duration”>' ; htmlString + = this 。持续时间; htmlString + = '</ span> <
返回 htmlString ;
};
movie.js
功能 电影(标题, 年,时 长) {
媒体。致电(this ,title ,duration ); 这个。年=年; }电影。prototype =对象。创建(媒体。原型); 电影。原型。toHTML = function (){ var htmlString = “ <li”
;
如果(此。IsPlaying模块){ htmlString + = '类= “当前”' ; } htmlString + = '>' ; htmlString + = this 。标题; htmlString + = '(' ; htmlString + =此。年; htmlString + = ')' ; htmlString + = '<span class =“ duration”>' ; htmlString + = this 。持续时间;
'</ span> </ li>' ;
返回htmlString ; 控制台。日志(htmlString ); };
style.css
@进口 网址(HTTP ://字体。googleapis 。的COM / CSS ?家庭=瓦雷拉+圆);
@进口 URL (HTTP :// necolas 。github上。IO /归一化。CSS / 3 。0 。2 /正常化。CSS );
正文{背景:#ECEEEF
;
text-align :center ; 边距:100 px自动; 宽度:80 %; 填充:0 40像素; 字体:14 px正常的“ Varela Round” ,Helvetica ,serif ; } h1 { font-size :20 px ; 颜色:白色; } div {背景:#c25975 ;
边框半径: 4像素;
边框:1 px实线#D5DDE4 ; 边距:-40 px 0 0 ; } OL {列表样式类型:无; 填充:0 ; 背景:白色; 边距:0 0 ; 宽度:100 %; 显示:inline-block ; } li { color :
#2C3238 ;
宽度:96 %; 填充:15 px 2 %; 边距:0 ; 文字对齐:向左;border-top :1 px实心#D5DDE4 ; } li span { float :right ; 颜色:#777B7E ; }里。当前{背景:#ffd7d8 ; }按钮{
边距:10像素;
填充:10 px 35 px ; 边界:无; 边框半径:5像素;背景:白色; }
index.html
<!DOCTYPE html>
< html >
< head >
< title > Treetunes </ title > < link rel = “ stylesheet” href = “ style.css” /> </ head > <正文> < div > < h1 > Treetunes < / h1 > < ol id = “播放列表” > </ ol > <按钮ID = “播放”
>播放</ button >
< button id = “ next” >下一步</ button > < button id = “ stop” >停止</ button > </ div > < script src = “ playlist.js” > </ script > <脚本src = “ media.js” > </脚本> <脚本src = “ movie.js”> </脚本>
<脚本 src = “ song.js” > </脚本>
<脚本src = “ app.js” > </脚本> </ body > </ html >
答:这确实是一个小错误,它位于您的media.js文件中。您在哪里写:
媒体。原型。停止 = 功能() {
此。isPlaying =停止;};
应该是:
媒体。原型。停止 = 功能() {
此。isPlaying = false ; };