2016-05-12 73 views
0

一般來說,如果我正確地記得,我已經使用過這至少十幾次了,但對於一些上帝遺棄的理由,它從今天早上起就不起作用......有人有線索?Firefox event.target問題

JSFiddle Example

HTML:

<button id="testID" onclick="foo()"> 
test me 
</button> 

<button id="testID2" onclick="foo(this)"> 
test me 2 
</button> 

JS:

function foo(event){ 
alert(event.target.id); 
} 

回答

1

在第一個例子,你傳遞給undefinedevent。在第二個示例中,您將按鈕傳遞給event

如果你想要事件對象,那麼你必須傳遞事件對象。這就是event,但我不知道它是如何爲內部事件屬性創建的標準。

通常,您最好使用JavaScript綁定事件處理程序。

function foo(event){ 
 
    alert(event.target.id); 
 
} 
 

 
var buttons = document.querySelectorAll("button"); 
 
for (var i = 0; i < buttons.length; i++) { 
 
    buttons[i].addEventListener("click", foo); 
 
}
<button id="testID"> 
 
test me 
 
</button> 
 

 
<button id="testID2"> 
 
test me 2 
 
</button>

+0

好了,測試和工程,我讀過其他的例子,人們談論不必定義函數聲明的事件作爲一個參數,我這樣做,但沒有效果,我猜我需要明確地告訴它它也是一個參數。 – Dellirium