人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javascriptについて教えて下さい。

現在このようにしているのですが
document.getElementById("hoge").addEventListener("drop", onDrop, false);
function onDrop(event) {
省略
}

このように引数を付けたいのです
document.getElementById("hoge").addEventListener("drop", onDrop?????, false);
function onDrop(event,aaa,bbb) {
省略
}

どのように記述すればよいのでしょうか?

よろしくお願いします。

●質問者: worldtravel
●カテゴリ:コンピュータ ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● a-kuma3
●100ポイント ベストアンサー

イベントハンドラに渡す引数の値は、いつ決まるのでしょうか?


ページで固定だけど、ページ毎にばらばらな値で、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";
}

worldtravelさんのコメント
申し訳ございません。 お礼を申し上げるのをすっかり忘れておりました。 m(_ _)m ありがとうございました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ