2011-07-30 96 views
0

我已動態添加鏈接的章節,單擊時,顯示該章節的描述之後,假不工作動態添加鏈接(會從localStorage的數據),上述工程返回添加音頻

$('#chapterList #chapter_ul a').live('click', function(){ 
var chID = $(this).attr("id"); 
$('#chapterDesc p').fadeOut(300).remove(); 
$('<p></p>').html(localStorage.getItem(chID)).appendTo('#chapterDesc'); 
$('#chapterDesc p').hide(); 
$('#chapterDesc p').fadeIn(500);    

return false; 

}); 

代碼,然後我添加代碼的音頻播放時,只需返回假前行鏈接被點擊,

if($('#eventAudio').length>0){ //check if there is an existing #eventAudio in DOM 
$('#eventAudio')[0].remove(); //removes it 
} 
else{ 
    playAudio('audio/','bytes/',soundBytes,0,0); //if no existing, calls the playAudio function 
} 
if($('#eventAudio').length>0){//checks if there is a new #eventAudio 
$('#eventAudio')[0].play();//plays it 
} 

playAudio功能

function playAudio(thisLoc,thisSubF,thisArray,thisMusic,looping){ 
     $('<audio></audio>').attr('id','eventAudio').attr('src',thisLoc+thisSubF+thisArray[thisMusic]).appendTo('#mainContent'); 
    if(looping==1){ 
    $('#eventAudio').attr('onended','play()') 
    } 
} 

再次,代碼實際上工作,但只是一次。下次我點擊這些鏈接時,他們只會進入他們鏈接的頁面。現場('點擊')功能不再起作用。我一直堅持這個代碼兩個小時。任何人,請幫忙?提前致謝!

編輯:我測試這在Safari 5.1

回答

0

從DOM中刪除元素使用

$('#eventAudio').remove(); 

當您使用$('#eventAudio')[0]它返回的DOM元素(而不是jQuery對象),它沒有.remove()方法。

因此,該行會導致腳本失敗,永遠不會執行的return false,並且鏈接之後..

+0

哇。我怎麼錯過了?我花了2個小時爲3個字符,我忘了刪除。謝謝! – grizzy

+0

@grizzy :)總是有好多額外的眼睛來審查我們的代碼.. –