使用JavaScript更改onclick事件不起作用

4

我有这个:

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>

请勿忘记在答案可行时接受答案。 - Pranay Rana
2个回答

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;
}

0

如果你刚开始学习Javascript,我建议你熟悉其中一个优秀的Javascript库,永远不要再试图自己编写这些代码 - 这会让你失去理智。

此外,你可以购买《JavaScript权威指南》并观看Douglas Crockford的一系列视频,这也是个不错的选择。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接