我有一个包含链接的列表。我使用以下代码访问它们:
function initAll() {
var allLinks = document.getElementById("nav").getElementsByTagName("a");
for (var i=0; i< allLinks.length; i++) {
allLinks[i].onmouseover = showPreview;
allLinks[i].onmouseout = function() {
document.getElementById("previewWin").style.visibility = "hidden";
allLinks[i].onclick=mainProcess;
}
}
}
function mainProcess(evt){
alert(this.value);
false;
}
这不是确切的代码,我想做的是,我需要识别链接被点击,并在链接点击的基础上执行一些功能.我不知道代码需要修改的地方...页面在allLinks[i].onclick=mainProcess(this);
行给出错误.
现在的问题是,我不知道我应该如何处理这三个事件?
3条答案
按热度按时间cczfrluj1#
1)您将每个链接的
onclick
属性设置为**mainProcess()
返回的值-它总是返回false。2)当你直接定义一个事件处理器时,当事件触发时传递给它的参数是事件对象,而不是它被触发的元素。
要确定元素,您可以查看事件对象,或者(因为处理程序已添加到元素本身)简单地使用
this
,因为它将引用link元素myzjeezk2#
你需要把它传递给
mainProcess(link)
。就像在http://www.quirksmode.org/js/events_tradmod.html“没有括号!”和“this”章节中所述的。看看吧,那里也有一个例子。应该是你需要的一切。am46iovg3#
尝试更改为: