道歉,如果我对某些事件看起来有点“noobish”,但无论出于何种原因,以下内容对我都不起作用:
var someDomRef = document.getElementByRef("refVal");
for(i=0;i<someDomRef.length;i++) { //or someDomRef.childNodes.length/someDomRef.TagRef.length
someDomRef.onmouseup = function() {
someDomRef.childNodes[i].onmouseover=function() {
if(someRef.onmouseup) {
//return false for the onmouseover handler of this(someDomRef.childNodes[i])
}
};
};
}
每次我在someDomRef上按下它后释放鼠标按钮,我发现JS控制台中的“onmouseover无法分配给未定义的对象”错误。任何帮助都将非常感谢解决这个问题(注意:我知道我可以在somemomover函数之外的其他事件处理程序,在someDomRef.onmouseup的条件下,但我想知道一种方法来实现这一点从那个onmouseover本身(我也尝试分配var x = someDomRef.childNodes [i]并将其作为参数传递给someRef.onmouseup的条件子句,但这也不起作用(尽管它不是为此尝试返回错误))。
答案 0 :(得分:1)
调用mouseup时未定义。你需要通过一些闭包函数来关闭它:
var someDomRef = document.getElementByRef("refVal");
for(i=0;i<someval;i++) {
(function(i) {
someDomRef.onmouseup = function() {
someDomRef.childNodes[i].onmouseover=function() {
if(someRef.onmouseup) {
//return false for the onmouseover handler of this(someDomRef.childNodes[i])
}
};
};
})(i);
}
你可能需要onmouseup函数内的另一个闭包