如何使用jsfiddle的函数声明

时间:2013-12-10 16:10:30

标签: javascript jsfiddle

我有一些在我的.cshtml文件中有效的html / javascript 当我尝试将其移入jsfiddle进行实验时,它不起作用 不确定是否是我缺乏javascript经验,jsfiddle经验,可能两者....

html:

<div>
<button name="startBtn" id="startBtn" onclick="startTimer">Start</button>
</div>  

(我也尝试过“onTlick”属性的“startTimer()”;结果相同。)

javascript:

function startTimer() { alert("startTimer"); }

当我点击按钮时,我在控制台中看到了这一点:

  

未捕获的ReferenceError:未定义startTimer

我在俯瞰什么? (jsfiddle:http://bit.ly/1buQx9t

6 个答案:

答案 0 :(得分:11)

jsFiddle Demo

首先您必须将框架设置为No wrap - in <head>,而不是onLoad

JSFiddle Option

<强>描述

onLoad与JavaScript中的window.onload=function(){[YOU ARE TYPING HERE]}或jQuery中的$(function(){[YOU ARE TYPING HERE]});相同。

No wrap - in <head><head><script type="text/javascript">[YOU ARE TYPING HERE]</script</head>

相同

No wrap - in <body><body>[HTML CODE HERE]<script type="text/javascript">[YOU ARE TYPING HERE]</script></head>

相同

我希望这会清除jsFiddle中的设置,它们可能会有些混乱。


第二次您的HTML稍有不妥:

<强> HTML

<div>
    <input type="button' value='"Start" onclick="startTimer()"/>
</div>

<强>描述

onclick="startTimer"已更改为onclick="startTimer()"这将执行该功能。

答案 1 :(得分:2)

第一个问题:你有一个jsfiddle来设置onload所以这个函数不在全局范围内。

enter image description here

第二个问题,你没有调用该函数。你缺少()

 onclick="startTimer()"

答案 2 :(得分:0)

你有一些奇怪的引号(在你的小提琴中)加上你忘记了函数名后面的()。使用:

<input type="button" value=" Start " onclick="startTimer()" />

<强> jsFiddle example

答案 3 :(得分:0)

如果你在jsfiddle中使用纯JavaScript(即 - 没有jquery等),那么将第二个下拉列表更改为“No wrap in in <head>

答案 4 :(得分:0)

你有一些额外的错位引号,并没有调用该函数。需要添加()来调用它。最后,您需要将“onload”更改为“no wrap-in”

<div>
     <input type="button" value="Start" onclick="startTimer()"/>
 </div>

答案 5 :(得分:0)

以上答案都可以;我只想澄清一下此图片可以更改的内容/位置以解决问题:

这里是jsfiddle demo

<button onclick="doThat()">
Click
</button>

function doThat() {
    console.log("click happened");
}

enter image description here