代码中的错误 - jquery

时间:2011-05-26 23:06:43

标签: javascript jquery html

我无法理解为什么这段代码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>

是什么原因?

2 个答案:

答案 0 :(得分:4)

在元素存在之前附加处理程序。切换到$.live()或在文档就绪时运行代码:

$(function(){
  // attach click here
});

这将导致代码等到文档加载完毕,并且您的#enviar元素存在于DOM中。直到它存在,没有任何东西可以附加到它。

答案 1 :(得分:2)

附加click事件处理程序时,文档尚未加载。那就是&lt;输入&gt;元素在该州不可用。

解决方案是在文档加载后使用jquery ready函数附加处理程序,如下所示:

$(document).ready(function(){
    $('#enviar').click(function(){
    alert ("casd");
});