为什么我的jQuery代码没有被调用?
这是我下面的代码:为什么我的jQuery代码没有被调用?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<script src="Scripts/jquery-1.7.js" type="text/javascript"></script>
<script>
$('target').submit(function()
{
alert('Handler for .submit() called.');
});
</script>
</head>
<body>
<form id="target" method="post">
<input type="text" value="Hello there" />
<input type="submit" value="Go" />
</form>
<div id="other">
Trigger the handler
</div>
</body>
</html>
始终与文档准备功能包裹你的绑定方法:
<script>
$(function() {
$('#target').submit(function()
{
alert('Handler for .submit() called.');
});
});
</script>
编辑这是必要的,是因为如果你试图绑定前的文件准备好,有一个非常好的机会#target对象尚不存在。当然,你可以把它改为$(“#target”)。live(“submit”,function(){....但是,这对于如何解决这个问题并不是一个好主意。我上面显示。
注 - 我也加入了散列标记,正如其他人提到的那样。 –
+1好的catch在document.ready() – DefyGravity
通知Jake在你的选择器中也加了'#'。这是解决方案的一部分。有关文档准备功能的更多信息,请访问http://docs.jquery.com/Tutorials:Introducing_$(document).ready() –
的主要问题是,你的选择是选择一个目标标签,而不是用目标的ID的元素,所以更改此:
$('target').submit(function()
到
$('#target').submit(function()
你的第二个问题是你应该让你的jQuery代码包装在DOM就绪事件中。
你错过了 '#' 号。
<script>
$('#target').submit(function()
{
alert('Handler for .submit() called.');
});
</script>
因为执行此代码时不存在t arget呢。使用.ready()。也应该是$('#target')
,因为id selectors应该以#为前缀。
$(function(){
$('#target').submit(function()
{
alert('Handler for .submit() called.');
});
}
#
在选择器中缺失。
$('#target').submit(function(){ });
使用这种方式:
<script>
$(document).ready(function() {
$('#target').submit(function() {
alert('Handler for .submit() called.');
});
});
</script>
@BNL - 与您的编辑问题(因此该解决方案)不再清晰。这是有帮助的(要求,真的)看到完整的上下文,所以我们知道他没有使用document.ready。 –
你说得对,回滚。 – BNL