我的HTML文件:
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" />
<script src="script.js" type="text/javascript"></script>
</head>
<body>
<form name="someForm">
<input type="button" value="Click me" onClick="myFunction()" />
</form>
<div id="result"></div>
</body>
</html>
我的script.js文件:
function myFunction(){
$("#result").html("BUTTON WORKS");
}
我有Firebug,每当我点击按钮时,Firebug就会抛出这个错误:
ReferenceError:myFunction未定义
我做错了什么?
答案 0 :(得分:2)
script
不能是HTML中的自我结束标记(它适用于某些浏览器,具体取决于doctype,但它不正确)。您必须添加结束标记。
替换
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" />
与
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
由于此错误,可能无法正确解析指向您的脚本的脚本元素。
来自the norm:
脚本元素必须同时包含开始标记和结束标记。
块引用
答案 1 :(得分:1)
可能是由于文件引用问题。
最好将事件附加到js文件而不是HTML。
<form name="someForm">
<input type="button" id="btn" value="Click me" />
</form>
$('#btn').on('click', function(){
$("#result").html("BUTTON WORKS");
});
答案 2 :(得分:1)
您是在本地打开该文件(地址栏中有file://
)还是从地址栏中的某个服务器(http://
协议)打开?因为如果您在本地打开文件,实际上是尝试从地址加载jquery:
文件://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
这是不正确的。它发生了,因为您使用//ajax.googleapis.com/...
作为地址,它引用与当前打开的网页相同的协议。
将其更改为:
http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
将您的文件上传到某个服务器(甚至在本地安装一个)并通过完整的http请求进行测试。
答案 3 :(得分:1)
我通过组合@Susbanth,@ MBO和@dystroy的答案解决了这个问题。
这是我的新HTML文件:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="script.js" type="text/javascript"></script>
</head>
<body>
<form name="someForm">
<input type="button" value="Click me" />
</form>
<div id="result"></div>
</body>
</html>
我在jQuery源代码中添加了“http”,关闭了代码,并从HTML中删除了“onClick”。
这是更新后的script.js文件:
$(document).ready(function(){
$("input[type=button]").on("click",function(){
$("div#result").html("BUTTON WORK");
});
});
我将onClick事件作为jQuery事件。