2017-01-10 20 views
-4

我看到一些像這樣的代碼:事件是針對對象還是字符串?

var targetElement = event.target || event.srcElement; 
if((targetElement == "IMG") 
{ 
    ... 
} 

我一直以爲event.target是一個對象,我們應該使用event.target.tagName,但怎麼來event.target是一個字符串嗎?

+0

什麼讓你認爲它是一個字符串,基於什麼看起來像無效的代碼 –

+0

你在測試的瀏覽器中看到什麼樣的值? [Mozilla文檔](https://developer.mozilla.org/en-US/docs/Web/API/Event/target)似乎表明這應該始終是一個對象。如果'target'沒有設置,可能是因爲你使用的是20世紀的瀏覽器,那麼['srcElement'](https://msdn.microsoft.com/en-us/library/ff974945%28v=vs .85%29.aspx?f = 255&MSPPError = -2147217396)也應該是一個對象。我認爲這個代碼是錯誤的。 – tadman

回答

0

這是一個對象,當然。您可以使用==並將其與字符串進行寬鬆比較,但是有什麼意義?

如果你想檢查的類型,使用

event.target.tagName.toUpperCase() === "IMG" 

toUpperCase如果文檔可能在XHTML是必要的。

相關問題