例えば:
someElement.addEventListener("blahblah", alert("hello!"));
ChromeとFirefoxの両方の開発コンソールに入力すると、alert("hello!")
呼び出しが1回起動されてから、' undefined
'が返されるようです。
同じ呼び出しをページに埋め込んだ場合、何も起こらないように見えます。エラーは発生せず、興味深い値は返されません。
例えば:
someElement.addEventListener("blahblah", alert("hello!"));
ChromeとFirefoxの両方の開発コンソールに入力すると、alert("hello!")
呼び出しが1回起動されてから、' undefined
'が返されるようです。
同じ呼び出しをページに埋め込んだ場合、何も起こらないように見えます。エラーは発生せず、興味深い値は返されません。
これは単なるカスタムイベントであり、起動することもできます。
ただし、テストで得た問題はundefined
、呼び出された関数alert()
が返す関数ではなく、ハンドラーとして関数を渡す必要があることです。これらを試してください:
el.addEventListener("foo", alert.bind(window, "hello!"));
また
el.addEventListener("bar", function(e){ alert("hello "+e.name); });