2012-02-17 181 views
0

我已经把我的头发拉出来了。 通常当某些东西不起作用时,它只是IE。 但是这在FF和Opera中不起作用。jQuery jPlayer.event.ended适用于Chrome,Safari,IE9,但不适用于Opera和FireFox

在下面的代码中,正在调用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 
+0

嗯,我有一个总的感觉事情可能在这里重构..反正,更多情况下会帮助..的标记和你使用会帮助我们。小提琴jPlayer构造器选项,或者链接到页面将*最*有用.. – Lloyd 2012-02-17 10:23:01

回答

0

我想通了什么是错的。 这段代码正在通过AJAX调用到div中。

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

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

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

步骤2:玩家格也包含在被调用的脚本。

<div id=jquery_jplayer></div> 

步骤3:确保my_jPlayer变量分配作为一个全球性的父脚本。

var my_jPlayer; 
相关问题