我无法理解为什么这段代码works很好
但是下面的代码没有。
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript">
$('#enviar').click(function(){
alert ("casd");
});
</script>
</head>
<body>
<input type="submit" id="enviar" value="Registo" />
</body>
</html>
是什么原因?
答案 0 :(得分:4)
在元素存在之前附加处理程序。切换到$.live()
或在文档就绪时运行代码:
$(function(){
// attach click here
});
这将导致代码等到文档加载完毕,并且您的#enviar元素存在于DOM中。直到它存在,没有任何东西可以附加到它。
答案 1 :(得分:2)
附加click事件处理程序时,文档尚未加载。那就是&lt;输入&gt;元素在该州不可用。
解决方案是在文档加载后使用jquery ready函数附加处理程序,如下所示:
$(document).ready(function(){
$('#enviar').click(function(){
alert ("casd");
});