因此,我遵循了从here制作简单的点击游戏的指南,并尝试对其进行测试,并且由于某种原因该数字并未增加,因此我检查了控制台,并说“ {{1 }}未定义”,当我检查已加载的文件时,它仅显示clik()
文件。
为什么不执行JS文件?
这是HTML文件:
HTML
这是JS文件:
<!DOCTYPE html>
<html>
<body>
<button onclick="clik(1)">Clik to add cliks</button>
<br />
Cliks: <span id="clik">0</span>
<br />
<script src="js/script.js"></script>
</body>
</html>
请记住,这些都不在线,我正在本地运行。 控制台正在输出
var clik = 0;
function clik(num){
clik = clik + num
document.getElementById("clik").innerHTML = clik;
};
然后单击按钮
The character encoding of the HTML document was not declared. The document will render with garbled text in some browser configurations if the document contains characters from outside the US-ASCII range. The character encoding of the page must be declared in the document or in the transfer protocol.
答案 0 :(得分:3)
var clik = 0;
function clik(num){
clik = clik + num
document.getElementById("clik").innerHTML = clik;
};
当解析此代码时,有一个“变量”称为clik,而我是一个函数
第一次运行此代码
clik = clik + num;
现在 clik
不是函数
实际上,这要复杂得多-函数定义被提升到作用域的顶部,所以实际上发生的是
var clik=0
在函数第一次运行之前就将其替换。您的代码等同于编写
function clik(num){
clik = clik + num
document.getElementById("clik").innerHTML = clik;
};
var clik = 0;
现在,您可以看到为什么clik
甚至对于第一次用户单击也不起作用的功能
您的代码应为var
使用不同的名称-例如说nclik
var nclik = 0;
function clik(num){
nclik = nclik + num;
document.getElementById("clik").innerHTML = nclik;
}
请注意,在;
后面我不需要使用function {};
的地方,您应该在每条陈述后都放一个(当然,这是一个样式问题,只需将其放在那里即可)
答案 1 :(得分:1)
在所有情况下,请始终确保所有属性都是正确的:scr不是脚本标记的有效属性:
<script src="link/to/file.js">
不需要type=""
属性,默认值为“ text / javascript”
如果使用浏览器的内置开发工具,则可以自行解决。您可以在那里(在“网络”选项卡下)检查正在加载的文件。在这里,您会看到从未请求您的js,这告诉您src参数无效。
答案 2 :(得分:0)
问题出在给变量和函数指定的名称中。它们不允许相同。要显示它与脚本的位置无关,只需像在fiddle中那样将其内联即可。您会收到相同的错误。
但是,如果您更改变量名称:
var i = 0;
function clik(num){
i = i + num
document.getElementById("clik").innerHTML = i;
};
它works。
答案 3 :(得分:0)
html
<!DOCTYPE html>
<html>
<body>
<button onclick="clik()">Clik to add cliks</button>
<br />
Cliks: <span id="clik">0</span>
<br />
<script type=javascript src="js\script.js"></script>
</body>
</html>
javascript
var count = 0 ;
function clik(){
count +=1;
document.getElementById("clik").innerHTML = count;
}
无需在click函数中传递参数。Remove the parameter "1" in click()
。相反,我们添加了变量count = 0;
答案 4 :(得分:-1)
请尝试以下操作:
\
替换为/
<script src="/js/script.js"></script>
一般提示:
该错误应显示在控制台中;)
答案 5 :(得分:-1)
请更改此语法
<script type=javascript src="js/script.js"></script>
到
<script type="text\javascript" src="js/script.js"></script>
在此之后您的代码可以正常工作