2016-05-12 4 views
0

一般的に言えば、私がこれを少なくとも十数回前に使ったことがありますが、神のせいにされた理由のために、今朝から働いていません...誰かが手掛かりを持っています?Firefoxのイベントターゲットの問題

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

最初の例では、あなたはeventundefinedを渡します。 2番目の例では、ボタンを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