这是一个替代方案,它使您的 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
}