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


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

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

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

よろしくお願いします。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2013/09/28 16:13:58
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:a-kuma3 No.1

回答回数4973ベストアンサー獲得回数2154

ポイント100pt

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


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

申し訳ございません。
お礼を申し上げるのをすっかり忘れておりました。
m(_ _)m

ありがとうございました。

2013/11/01 20:24:41

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません