我正在写一些简单的jquery,由于某种原因,我根本无法使它工作。我/知道/它在其他地方工作,但我要么丢失了一些东西,要么我的网络服务器上有一个错误。
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>asdf</title>
<script src="jquery.js" type ="text/javascript"></script>
<script language ="javascript" type = "text/javascript">
//alert("number one");
$('#regSubmit').click(function(){
alert("Clicked!");
});
$('#test2').click(function(){
alert("yeah that worked.");
})
</script>
</head>
<body>
<input type ="button" id="regSubmit" value="Register!" />
<div id="test2">
Here is some other stuff!
</div>
</body>
</html>
所以我完全复制了那段代码,但它对我不起作用。注释掉顶部附近的警报(第一个)工作正常,所以它调用jquery,但没有点击注册。
我做错了什么?
答案 0 :(得分:3)
将您的javascript添加到
$(function(){
//your code
});
这是必需的,因为您只能将事件绑定到元素,它们已经存在。在您存在之前尝试此操作时,此示例代码在加载完整页面后执行它,因此所有html都在那里
答案 1 :(得分:1)
您必须将脚本移至底部或将其包装在$(document).ready(function() { … }
中。脚本执行时文档尚未完成加载,因此当您尝试附加事件处理程序时,关联的元素不存在。
答案 2 :(得分:1)
嵌入到HTML中的代码是按顺序执行的,因此在执行代码时,尚未定义regSubmit和test2。
将您的代码移到HTML文档的底部,或将其包装在$(function(){ /*your code here*/ });
中,这将推迟您的代码执行,直到加载整个文档。
答案 3 :(得分:0)
您尝试在事件存在之前将事件绑定到元素。运行ready
事件处理程序中的代码,以便在整个文档加载时运行:
$(document).ready(function(){
$('#regSubmit').click(function(){
alert("Clicked!");
});
$('#test2').click(function(){
alert("yeah that worked.");
})
});