これは、myObjDown関数を一般的なイベントハンドラーと一致させるための代替手段です。(イベント呼び出し要素への参照としてe.targetを使用)
var CssSelector = "div.className";
var elms = document.querySelectorAll(CssSelector);
for (i = 0; i < elms.length; i++) {
elms[i].addEventListener("mousedown", myObjDown.bind(null, {"target":elms[i]}, false);
}
function myObjDown(e) {
console.log("event: %o - target: %o", e, e.target);
var elm = e.target;
//do stuff here
}
それが提案されました..
この方法では、一部のブラウザのバージョンでメモリリークが発生する可能性があります。誰かがこれを経験したり、貴重な洞察を持っている場合。コメントしてください。
代替案は、この点で
var CssSelector = "div.className";
var elms = document.querySelectorAll(CssSelector);
for (i = 0; i < elms.length; i++) {
elms[i].addEventListener("mousedown", myObjDown.bind(null, elms[i].id}, false);
}
function myObjDown(id) {
console.log("element: %o ", document.getElementById(id));
//do stuff here
}