html5引用jquery,使用HTML5音频和jQuery调用对象(this)的引用

我创建了自己的HTML5音频播放器,能够处理播放列表。我创建了一个自定义myPlaylist对象,其中包括所有的play(),pause(),stop()和其他所需的功能。这一切都正常工作,但此外,我需要知道音频文件何时结束以便自动开始播放下一个音频文件。使用HTML5音频和jQuery调用对象(this)的引用

下面的代码的相关部分我使用:

function myPlaylist(){

var player = document.createElement('audio');

var audio = $(player).get(0);

this.next = function next(){

// Picks next song in the playlist and plays it

...

};

$(audio).bind('ended', function() {

alert("Song is finished!");

// Here I want to call to my next() function

});

}

我一直无法弄清楚如何做到这一点。我已经尝试过几种组合,例如$(this).next(),这似乎是最合理的,实际上显示警报,但随后不执行任何操作,也是this.next(),它也显示警报,但随后显示错误,因为this引用HTML5音频元素,它没有next()功能。

我也尝试另一种方法,使用

audio.onended = function(){

alert("Song is finished!");

$(this).next();

};

但那些甚至不触发警报。另外audio.ended不起作用。

所以,我现在基本无能为力,有没有人有任何想法我做错了什么?提前致谢。

哦,我测试过这一切,谷歌Chrome和Safari的最新版本的Mac OS X.

player.addEventListener("ended", function() {

alert("Song is finished!");

$(this).next();

});

而且

player.addEventListener("ended", next);

他们都不工作,虽然第一个正确显示警报。

EDIT 2使用我碰到this question来搜索,这也可能是与我的问题,所以为了摆脱与参考任何可能的麻烦来this,我添加了一个新的变量引用对象本身,所以我现在基本上是与工作:

function myPlaylist(){

var player = document.createElement('audio');

var audio = $(player).get(0);

var me = $(this);

this.next = function next(){

// Picks next song in the playlist and plays it

...

};

$(audio).bind('ended', function() {

alert("Song is finished!");

me.next();

});

}

但后来我得到一个错误,说对象没有一个方法next()。

我不知道还有什么可以尝试...任何额外的信息将不胜感激,谢谢!

+0

事件名称通常不开头的(如在audio.onended),这看起来更像是IE浏览器给我。你有没有尝试audio.ended你的第二个例子? –

2012-03-10 21:11:54

+0

是的,我已经尝试过,同样的结果,警报没有显示。但我不知道事件名称取决于浏览器。谢谢你的提示。 –

2012-03-10 22:24:42

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值