Javascript“onClick”事件不起作用

时间:2011-08-30 07:19:08

标签: javascript javascript-events

我的php文件中有这一行:

echo "<input type='button' id='showButton' value='show'  onclick='showOld()'>";

显示按钮但单击时,没有任何反应。

该函数位于外部JS文件中。 这是函数声明:

页面中的其他“onclick”事件和JS函数正在运行。

    function showOld()
    {
    alert("njkh");
    var table = document.getElementById("showExp");
    var button = document.getElementById("showButton");
    if (table.style.display == "none")
    {
        table.style.display = "inline";
        button.value = "הסתר ניסויים ישנים";
    }
    else if (table.style.display == "inline")
    {
        table.style.display = "none";
        button.value = "הצג את כל הניסויים";
    }       
    }

控制台说“ReferenceError:showOld未定义”

4 个答案:

答案 0 :(得分:2)

您必须确保已部署更新的代码。

你可以查看html源代码。

并且您发布的代码没有任何问题。

答案 1 :(得分:1)

尝试打开firebug的控制台(或chrome dev工具)并检查是否有任何脚本错误。

你应该避免编写内联JavaScript。这使得调试和维护代码库变得更加困难。我建议您阅读以下有关javascript事件的文章:

Quirksmode - Early Event Handlers

Quirksmode - Traditional event registration model

文章引用:

  

虽然内联事件注册模型古老而可靠,   它有一个严重的缺点。它需要你编写JavaScript   XHTML结构层中的行为代码,它不属于它。

答案 2 :(得分:1)

请尝试下一步检查例外情况:

<input type='button' id='showButton' value='show' onclick='javascript:alert(1);try{showOld()}catch(e){alert(e)}' />

javascript控制台中显示的内容(如果有)?

答案 3 :(得分:0)

首先,简化问题,看看以下功能是否有效。

function showOld() {
alert('test');
}