使用JavaScript无法更改onclick事件

时间:2010-11-22 10:24:00

标签: javascript events attachment

我有这个:

function tp_visible(action){
    if(action==1){
        document.getElementById("tp").style.display='block';
        document.getElementById("tp_action").onclick='tp_visible(0);
        return false;';
    }
    else {
        document.getElementById("tp").style.display='none';
        document.getElementById("tp_action").onclick='tp_visible(1);
        return false;';
    }
    return false;
}

为什么以上内容不会更改onclick事件?

我使用Firebug并且事件保持不变......

这是HTML:

<a
    id='tp_action'
    name='tp_action'
    href='#'
    onclick='tp_visible(1);
    return false;'
>Show info</a>

2 个答案:

答案 0 :(得分:10)

下面的检查对您有用,因为您无法将字符串值分配给处理程序onclick

function tp_visible(action){
    if(action==1){
        document.getElementById("tp").style.display='block';
        document.getElementById("tp_action").onclick= function ()
            { tp_visible(0); return false;};
    }
    else {
        document.getElementById("tp").style.display='none';
        document.getElementById("tp_action").onclick= function ()
            {tp_visible(1); return false; }
    }
    return false;
}

答案 1 :(得分:0)

如果您刚开始使用Javascript,我建议您使用其中一个优秀的javascript库,并且永远不要再尝试为自己编写这些东西 - 这会让您失去理智。

此外,您可能会比购买Javascript the Good Bits更糟糕,并通过Douglas Crockford观看一组视频。