▽1
●
TransFreeBSD ベストアンサー |
function test1(a, func) { document.addEventListener(a, func, false); } test1("click", function (ev) { n = ev.screenX; }); test1("click", function (ev) { console.log(n); });
質問としては「関数の外で取得したい」というよりも(普通に取得出きるので)「関数の終了後に別の関数を実行したい」という事になるかと思った。
ちなみにこれの n は window.n になります。所謂グローバル変数です(グローバル変数にしなくてもOKです http://jsfiddle.net/LRU4M/2/ )。
以下蛇足
addEventListenerの仕様を読むと下記じゃないとダメかと思ったけど上記でOKっぽい。なんでだろう。
http://jsfiddle.net/8wWd3/1/
https://developer.mozilla.org/ja/docs/Web/API/EventTarget.addEventListener
ターゲットに対して 2 つ以上のイベントリスナーを登録するには、同じターゲットに対して、異なるイベントタイプ、あるいは、キャプチャパラメータを指定して addEventListener() を呼び出します。
確かに関数の外で処理するんじゃなくて、関数内で処理する方向で考えた方が
いいような気がしてきました。
丁寧な回答ありがとうございます。
参考にさせてもらいます。