2016-04-08 57 views
0

所以我在這裏得到這個錯誤,我真的不明白它是什麼意思。Javascript代碼錯誤視頻點擊

video_click.js:20遺漏的類型錯誤:無法讀取空的特性「的addEventListener」

這裏是我使用

var v = document.getElementById('videoPlayer'); 
v.addEventListener(
'play', 
function() { 
    v.play(); 
}, 
false); 

v.onclick = function() { 
if (v.paused) { 
    v.play(); 
} else { 
    v.pause(); 
} 

return false; 
}; 

var a = document.getElementById('videoPlayer2'); 
a.addEventListener(
'play', 
function() { 
    a.play(); 
}, 
false); 

a.onclick = function() { 
if (a.paused) { 
    a.play(); 
} else { 
    a.pause(); 
} 

return false; 
}; 

有人可以幫助我理解我在做什麼錯誤的JavaScript代碼。

感謝, 卡邁勒

回答

0

document.getElementById返回空值,如果它不能找到指定ID的元素。根據錯誤消息中的行號,它看起來像var a = document.getElementById('videoPlayer2');結果a被分配給null。因此,當您嘗試在下一行呼叫a.addEventListener時,它會失敗,因爲您無法在空值上調用addEventListener

因此,它看起來像在文檔中沒有元素的ID爲videoPlayer

+0

好的,謝謝我明白我做錯了什麼。我將如何解決它? –

+0

嗯,這取決於它爲什麼找不到'videoPlayer2'。如果您錯誤地輸入了該元素的ID(例如,它應該是「videoplayer2」),那麼修復該錯字將會解決該問題。如果完全預期在某些情況下不會有一個ID爲'videoPlayer2'的元素,那麼您可以在嘗試調用'a.addEventListener'和'a之前檢查以確保'a'不爲空。 onclick'。因此,在分配'a'之後,可以執行'if(a!== null){',然後將其他代碼放在該塊內的'a'上。 – Elezar

+0

鍛鍊完美。謝謝 –