How to remove this loop to call div elements separately?
这是我用于音频播放器的代码:
它的作用:
使用循环为每首歌曲一次创建多个音频播放器(通过使用单个 div 元素)。
循环:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
/* createAudioElements
* create audio elements for each file in files */ function createAudioElements() { for (f in files) { var audioString =“<source src=”http://www.alexkatz.me/codepen/music/” + files[f] +””></audio>”; $(“#audio-players”).append(audioString); } } /* createAudioPlayers |
var 文件:
1
2 3 4 5 |
var files = [“interlude.mp3”, // 0
“chooseyourweapon.mp3”, // 1 “interlude.mp3”, // 2 “scriptures.mp3” // 3 ]; |
在我使用时在 HTML 中调用:
1
|
|
我要完成的工作:
删除循环,以便我可以单独插入任何播放器并单独调整它们但是我想要这样:https://puu.sh/ynD4q/6ab2ba7816.png
我想使用此代码来调用所需的音频播放器:
1
2 3 4 |
<source src=“http://www.alexkatz.me/codepen/music/interlude.mp3”>
</audio> <button id=“playbutton-0” class=“play playbutton”></button> |
当我尝试使用它时,播放/停止/更改位置按钮停止工作。
这让我发疯了,我刚开始学习 jQuery。非常感谢!
将 files 数组更改为 settings 对象,并为具有 elementId 和 src 属性的每个文件添加对象:
1
2 3 4 5 |
var settings = [
{“elementId” :“audio-player-1”,“src” :“http://www.alexkatz.me/codepen/music/interlude.mp3”}, {“elementId” :“audio-player-2”,“src” :“http://www.alexkatz.me/codepen/music/chooseyourweapon.mp3”}, {“elementId” :“audio-player-3”,“src” :“http://www.alexkatz.me/codepen/music/scriptures.mp3”} ]; |
它非常有用,因为你可以添加任何你想要的属性。并且使用 src 属性,您可以从任何允许它的网站添加音频文件。
然后在 createAudioElements 中设置新的 src 属性为 settings[f].src.
之后在 createAudioElements 和 createAudioPlayers 函数中将选择器名称(循环中收集的行添加到该名称)更改为从相关 elementId 属性 $(“#” + files[f].elementId) 动态生成的名称。
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 |
// Event listener for DOM
document.addEventListener(“DOMContentLoaded”, theDOMHasLoaded, false); // array of audio files (stored in a folder called music) /////////////////////////////////////////////// // array for AudioObjects /* AudioObject Constructor */ /* addEventListeners() */ /* populateAudioList */ /* populateComponentDictionary() /////////////////////////////////////////////// /* durationChange /* pressPlay() /* play() /* timelineClick() /* mouseDown */ /* mouseUp EventListener /* mousemove EventListener if (newMargLeft >= 0 && newMargLeft <= ao.timelineWidth) { /* timeUpdate /////////////////////////////////////////////// /* changeClass /* getAudioListIndex /* clickPercent() // getPosition /* createAudioElements /* createAudioPlayers /* theDOMHasLoaded() // Populate Audio List |
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
.audioplayer {
width: 480px; height: 60px; margin: 50px auto auto auto; border: solid; } .playbutton { .play { .pause { .play, .timeline { .playhead { |
1
2 3 4 5 6 |
<script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js”>
player 1 player 2 player 3 |
- 你是我的救星,谢谢。最后!最后一个问题。如何将一些文件附加到 changeClass(this.playbutton,”playbutton play”); ?就像你对 function createAudioPlayers() { for (f in settings) { 所做的一样,非常感谢,你太棒了,谢谢。
- 在 AudioObject.prototype.play 函数的第一行添加 var fileIndex = parseInt(this.audio.id.replace(“audio-“,””)) 并在 changeClass 函数中使用此值。
您只需要更改新音频元素的 id,
查看工作演示
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 |
// Event listener for DOM
document.addEventListener(“DOMContentLoaded”, theDOMHasLoaded, false); // array of audio files (stored in a folder called music) /////////////////////////////////////////////// // array for AudioObjects /* AudioObject Constructor */ /* addEventListeners() */ /* populateAudioList */ /* populateComponentDictionary() /////////////////////////////////////////////// /* durationChange /* pressPlay() /* play() /* timelineClick() /* mouseDown */ /* mouseUp EventListener /* mousemove EventListener if (newMargLeft >= 0 && newMargLeft <= ao.timelineWidth) { /* timeUpdate /////////////////////////////////////////////// /* changeClass /* getAudioListIndex /* clickPercent() // getPosition /* createAudioElements /* createAudioPlayers /* theDOMHasLoaded() // Populate Audio List |
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
.audioplayer {
width: 480px; height: 60px; margin: 50px auto auto auto; border: solid; } .playbutton { .play { .pause { .play, .timeline { .playhead { |
1
2 3 4 5 6 7 |
<script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js”>
<source src=“http://www.alexkatz.me/codepen/music/interlude.mp3”> <button id=“playbutton-4” class=“play playbutton”></button> |
- 感谢您的出色工作,但我想删除并使用完整的 “> 元素在任何我想要的地方插入我选择的单个播放器。
来源:https://www.codenong.com/47342143/