jQuery jPlayer.event.ended适用于Chrome,Safari,IE9,但不适用于Opera和FireFox

时间:2012-02-17 00:15:25

标签: jquery jplayer

我把头发拉了过来。 通常当某些东西不起作用时,它就是IE。 但这在FF和Opera中不起作用。

在下面的代码中,调用了playSound(),因此所有条件都是 被满足,声音正在播放。

然而,在声音结束时,应该使用resetSound()重置声音按钮等。

这在Chrome,IE9和Safari中100%有效。 谁能告诉我为什么它在FF和Opera中不起作用?

function clickSoundbtn(clicked) {
console.log('clickSoundbtn');
if (clicked != bucket['playing_now'] && clicked != bucket['current']) {
 console.log('clickSoundbtn');
$('#jquery_jplayer').unbind($.jPlayer.event.ended).bind($.jPlayer.event.ended, function() {
    console.log('resetting sound');
    resetSound(bucket['playing_now']);
    $('#jquery_jplayer').unbind($.jPlayer.event.ended);
    bucket = [];
    saiseichuu = [];
    });
playSound(clicked);
}
else
{
    if (bucket['current'])
    stopAll();
    else
    resetSound(clicked);
}
} // end of function: clickSoundbtn

1 个答案:

答案 0 :(得分:0)

我弄清楚出了什么问题。 这段代码通过AJAX被调用为div。

所有其他代码都可以保留在父脚本中。 您必须在被调用的AJAX脚本中重新初始化Jplayer。

第1步:初始化播放器的代码位于CALLED脚本中。

my_jPlayer = $("#jquery_jplayer");
my_jPlayer.jPlayer({
swfPath: "/javascript/Jplayer.swf",
wmode: "window"

第2步:播放器div也包含在被调用的脚本中。

<div id=jquery_jplayer></div>

第3步:确保将my_jPlayer变量在父脚本中指定为全局。

var my_jPlayer;