![](/img/trans.png)
[英]Why isn't my setInterval function being called in this React app?
[英]Why isn't my function being called?
我只是在做一些简单的JavaScript作业,但我无法弄清楚为什么我的函数没有被调用。
我现在所有的te功能都是alert("test")
,因为我必须确保在实际编写它之前调用该函数。 JS文件DOMassignment_3_ext.js
与HTML文件位于同一文件夹中。
HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>DOM Assignment: #3</title>
<script src="DOMassignment_3_ext.js">
</script>
</head>
<body>
<h2>Christmas Mad Libs</h2>
<form name="words">
<table>
<tr>
<td>Name</td>
<td><input type="text" name="name"></td>
</tr>
<tr>
<td>Body-part</td>
<td><input type="text" name="body"></td>
</tr>
<tr>
<td>Animal</td>
<td><input type="text" name="animal"></td>
</tr>
</table>
<input type="button" onlick="madlibs(name, body, animal)" value="Submit">
</form>
<p>
<b class="name"></b> the Red-<b class="body"></b> <b class="animal"></b><br>
Had a very shiny <b class="body"></b><br>
And if you ever saw it<br>
You would even say it glows<br>
And all of the other <b class="animal"></b><br>
Used to laugh and call him names<br>
They never let poor <b class="name"></b><br>
Join in any <b class="animal"></b> games<br>
</p>
</body>
</html>
JS:
function madlibs(name, body, animal){
alert("test");
}
<input type="button" onlick="madlibs(name, body, animal)" value="Submit">
应该:
<input type="button" onclick="madlibs(name, body, animal)" value="Submit">
问题是你传递的是不存在的变量! name
确实(总会有一个全局变量name
,但是body
和animal
不会。因此,当你调用这个函数时:
onlick="madlibs(name, body, animal)"
onclick="madlibs(name, body, animal)" // and even when you spell it correctly
Javascript会说“ body
?我不知道什么叫body
!” 然后它将抛出一个错误(准确地说是ReferenceError
)并停止运行代码。 这意味着不会调用madlibs
。
在您定义这些变量之前,您可以简单地将它们排除在调用之外:
onclick="madlibs()"
(实际上,学习如何使用Javascript附加事件处理程序会更好,但这是另一回事。)
再看一下,这些变量可能是在DOMassignment_3_ext.js
中定义的,但考虑到文件的名称,似乎不太可能......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.