在javascript中设置属性

时间:2011-09-29 11:42:39

标签: javascript

这是我将onclick属性动态设置为链接的代码,但如果没有单击链接本身,则会触发警报。

window.onload = function() {
    var links = document.getElementsByTagName("a");
    for(var i=0;i<links.length;i++) {
        elm = links[i];
        elm.setAttribute("onclick", alert("you clicked a lik"));
    }
}

2 个答案:

答案 0 :(得分:1)

将相应的行更改为:

elm.setAttribute("onclick", function() { alert("you clicked a link");});

如果将函数调用作为参数传递(例如alert('msg')),则执行imediatley函数,实际传递的参数是函数的返回值。您所要做的就是将您的eventHandler代码包装成匿名函数 此外,您可以声明一个处理事件的函数,并将其名称作为参数发送:

function handleClick() { alert("you clicked a link");}
elm.setAttribute("onclick", handleClick);

P.S。 :我建议使用addEventListener功能而不是普通的onEvent内联属性:

elm.addEventListener('click', function() { alert("you clicked a link");}, false);

答案 1 :(得分:0)

尝试将警告语句放入匿名函数

window.onload = function()
{
    var links = document.getElementsByTagName("a");
    for(var i=0; i < links.length; i++)
    {
        links[i].setAttribute("onclick", function () {
            alert("you clicked a link");
        });
    }
}