我有一些在我的.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)
答案 0 :(得分:11)
首先您必须将框架设置为No wrap - in <head>
,而不是onLoad
。
<强>描述强>
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所以这个函数不在全局范围内。
第二个问题,你没有调用该函数。你缺少()
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)
以上答案都可以;我只想澄清一下此图片可以更改的内容/位置以解决问题:
<button onclick="doThat()">
Click
</button>
function doThat() {
console.log("click happened");
}