jQuery事件绑定不一致

3

我曾以为我懂jQuery,但显然并不是这样。为什么在这个例子中,第一个文本框可以注册点击事件而第二个却不能呢?

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4

/strict.dtd">
<html>
<head>
<script type="text/javascript" src="jquery-1.4.2.min"/>
<script type="text/javascript">

    captureKeys = function(event)
    {
    alert("foo");
    }
    $(document).ready(function()
            {
        $('#UsingJQuery').bind('keyup', function(){alert('bar');});
            });

</script>
</head>
<body id="contentText" >
    <input type="text" id="UsingPlainJavaScript" onkeyup="captureKeys()"/>
  <input type="text" id="UsingJQuery"/>
  
</body>
</html>

编辑:好的,我已经修复了拼写错误,但它仍然无法工作。


1
你的Javascript选择器(usingJQuery)是否与输入标签(UsingJQuery)的ID匹配?我相信id属性是区分大小写的。 - Kevin
谢谢大家,回过头来看,我竟然会错过这么明显的错误,真是太神奇了! - Jonny Cundall
3个回答

4

这是在找麻烦:

<script type="text/javascript" src="jquery-1.4.2.min"/>

你需要一个</script>才能有一个有效的标记。
<script type="text/javascript" src="jquery-1.4.2.min"></script>

那是一个很大的错误,可能是你遇到问题的原因。另外一件事是,文件名中没有.js?确保你的jQuery库名称也是正确的。
参考资料:http://www.w3.org/TR/xhtml1/#C_3

3
因为第二个输入元素的ID是UsingJQuery(大写的U),而不是usingJQuery
$('#UsingJQuery').bind('keyup', function(){alert('bar');});

应该这样做。

更新:

错误一定在其他地方,您的代码是正确的。请参见:http://jsfiddle.net/H2xye/

可能您没有正确包含jQuery:

src="jquery-1.4.2.min.js"

您的路径末尾缺少.js。至少这是标准命名,可能您已经重命名了它。
错误控制台应该可以提供更多信息。

更新2:请参考jAndy的答案,关于</script>标签。这可能是另一个问题!


1
请将以下代码:

<script type="text/javascript" src="jquery-1.4.2.min"/>

修改为:

<script type="text/javascript" src="jquery-1.4.2.min.js"/>


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接