这里有新的开发者。
我在页面上有多个由同一个JQuery生成的元素。每个元素都加载了与之关联的适当内容,但任何函数 - 在这种情况下点击不同的轨道 - 从最后一组中提取内容。
到目前为止,我的研究让我相信这是种族条件的一个例子。
这是一个码本 - 点击左侧两个播放器上的任何歌曲标题,以查看图像,歌曲标题,艺术家姓名和.mp3数据是如何从#player-3中提取的。
$("#player-2").jAudio({
playlist: [{
file: "http://spindrop.io/audio/forgetme.mp3",
thumb: "http://spindrop.io/images/ar.jpg",
trackName: "Hungry",
trackArtist: "American Royalty",
trackAlbum: "Prismatic EP",
}, {
file: "http://spindrop.io/audio/mistakes.mp3",
thumb: "http://spindrop.io/images/ar.jpg",
trackName: "Red",
trackArtist: "American Royalty",
trackAlbum: "Prismatic EP",
}, {
file: "http://spindrop.io/audio/riverbed.mp3",
thumb: "http://spindrop.io/images/ar.jpg",
trackName: "Lifeline",
trackArtist: "American Royalty",
trackAlbum: "Prismatic EP",
}]
});
$("#player-3").jAudio({
playlist: [{
file: "../audio/staticheart.mp3",
thumb: "../images/geo.jpg",
trackName: "Family",
trackArtist: "Geographer",
trackAlbum: "Animal Shapes",
}, {
file: "../audio/taillights.mp3",
thumb: "../images/geo.jpg",
trackName: "Looping",
trackArtist: "Geographer",
trackAlbum: "Animal Shapes",
}, {
file: "../audio/theline.mp3",
thumb: "../images/geo.jpg",
trackName: "Sonic",
trackArtist: "Geographer",
trackAlbum: "Animal Shapes",
}]
});
http://codepen.io/kylebillings/pen/BKmZJx
&安培;这是指向jquery的非缩小版本的链接:https://gist.github.com/hisasann/337283
提前非常感谢。我很感谢学到一两件事。
答案 0 :(得分:0)
好的,我发现了你的错误(即使你要求其他人调试你的代码时,缩小版本不是最好的方法)。
错误在线:
this.settings = t.extend(!0, r, a)
a
包含提供的Playlist
,而r
包含默认参数。我不确定原因,但是如果您在此行之后记录settings
变量,则会看到所有设置对象都具有相同的播放列表。
可能的修复:
交换a
和r
:
this.settings = t.extend(!0, a, r)
来自jQuery doc:
默认情况下,$ .extend()执行的合并不是递归的。如果第一个对象的属性本身就是一个对象或数组,它将被第二个或后续对象中具有相同键的属性完全覆盖。
使用{}
代替!0
(即假)
对于这个,我仍然试图理解。它与我猜想的recursive
合并有关,以及在控制台中它返回一个函数而不是一个对象的事实。我一发现就会编辑。