简单的Javascript函数在jsfiddle中不起作用

时间:2014-06-02 11:20:06

标签: javascript html css

我有以下HTML代码。

 <select onChange="TestCall()">
<option>Text1</option>
<option>Text2</option>
<option>Text3</option>
<option>Text4</option>
</select>

我的JavaScript有一条简单的警告信息,如下所示。

 function TestCall()
{
 alert("Test");
}

检查以下Jsfiddle。我在jsfiddle的javascript区域添加了我的脚本。它不起作用。

JSFIDDLE NOT WORKING HERE

但是如果我在jsfiddle的HTML区域内移动脚本块正在工作。检查下面的一个。

JSFIDDLE WORKING HERE

我的代码有什么问题?有什么想法吗?

2 个答案:

答案 0 :(得分:4)

默认情况下,JSFiddle将JS块包装到onLoad函数:

......导致类似:

window.onload = function() {
    function TestCall() {
        alert("Test");
    }
};

这意味着您的TestCall方法已超出全局范围,无法从HTML属性访问。

将选项更改为No wrap - in <head>No wrap - in <body>,它会起作用。

DEMO: http://jsfiddle.net/Q9ukX/3/

答案 1 :(得分:2)

<强> Fiddle

如果你改变侧面的设置,它会起作用。

将其从onLoad更改为No Wrap - in bodyNo Wrap - in head