現在このようにしているのですが
document.getElementById("hoge").addEventListener("drop", onDrop, false);
function onDrop(event) {
省略
}
このように引数を付けたいのです
document.getElementById("hoge").addEventListener("drop", onDrop?????, false);
function onDrop(event,aaa,bbb) {
省略
}
どのように記述すればよいのでしょうか?
よろしくお願いします。
イベントハンドラに渡す引数の値は、いつ決まるのでしょうか?
ページで固定だけど、ページ毎にばらばらな値で、onDrop を外部スクリプトに逃がして共通化したい、ということなら、こんな感じで。
window.onload = function() { var wrapper = function(event) { var aaa = 10; var bbb = "ABC"; return onDrop(event, aaa, bbb); }; document.getElementById("hoge").addEventListener("drop", wrapper, false); } function onDrop(event, aaa, bbb) { alert("parameter : " + aaa + ", " + bbb); }
値が決まるのが、ページを表示してから何かの操作した後、ということであれば、引数の指定ではありませんが、イベントが発生する要素に持たせておくという手があります。
window.onload = function() { document.getElementById("hoge").addEventListener("drop", onDrop, false); } function onDrop(event) { var aaa = event.target.my_data["aaa"]; var bbb = event.target.my_data["bbb"]; alert("parameter : " + aaa + ", " + bbb); } /* 対象の要素にデータを設定する。 */ function setValue() { var e = document.getElementById("hoge"); if (! e.my_data) { e.my_data = []; } e.my_data[ "aaa" ] = 100; e.my_data[ "bbb" ] = "XYZ"; }
申し訳ございません。
2013/11/01 20:24:41お礼を申し上げるのをすっかり忘れておりました。
m(_ _)m
ありがとうございました。