自己学 JavaScript 有一段时间了,想写点东西练练手。于是想利用 jPlayer (
http://jplayer.org) 写一个音乐播放器,带列表的。
在官网看了 dev guide 还是有些不明白。我的目的是利用 jPlayer 里面的事件,当 loadeddata 事件触发之后执行某个函数。
http://jplayer.org/latest/developer-guide/#jPlayer-event-use 这是 jPlayer 事件的使用方法。
我在页面里面插入了外部 js 文件,放在了 body 的最后面。 js 代码如下:
window.onload = function () {
$.jPlayer({
ready: function() {
alert("a");
}
})
我先利用 ready 事件作为测试。但是也是没有效果。后来在官网里面的 demo (
http://jplayer.org/latest/demo-01/ )里面发现了单首歌曲的页面是这样添加歌曲信息的:
$(document).ready(function(){
$("#jquery_jplayer_1").jPlayer({
ready: function (event) {
$(this).jPlayer("setMedia", {
m4a:"
http://www.jplayer.org/audio/m4a/TSP-01-Cro_magnon_man.m4a",
oga:"
http://www.jplayer.org/audio/ogg/TSP-01-Cro_magnon_man.ogg"
});
},
swfPath: "../js",
supplied: "m4a, oga",
wmode: "window",
smoothPlayBar: true,
keyEnabled: true
});
$("#jplayer_inspector").jPlayerInspector({jPlayer:$("#jquery_jplayer_1")});
});
于是我稍微修改了一下:
$("#jquery_jplayer_1").jPlayer({
ready: function (event) {
alert("a");
},
});
然后插入到我写的页面,但是还是不行。不过如果是单首歌曲的页面的话又可以。带播放列表的就总是不行。我想请教一下各位大神,究竟怎样才能利用 ready(或者 loadeddata) 事件执行相应的 function 呢?
其实我是想通过 loadeddata 这个时间触发之后获取正在播放的歌曲的歌曲名,然后把文本赋予给一个自己建的div。之前只想到通过获取正在播放的歌曲的 class 或 id 然后再把文本赋予给div。但是这样创建的文本并不能根据歌曲的切换然后正确地显示歌曲名,只能显示第一首歌曲的歌曲名。所以才有了想通过 loadeddata 这个事件来动态地执行文本的获取。
各位大神如果有更好的办法的话 麻烦告知一下,小弟感激不尽!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/91660
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.