2012-02-17 220 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; 
相關問題