jQuery(document).ready(function(){
jQuery(".test").click(function() {
alert(1);
});
});
当我尽量不放:
jQuery(".test").click(function() {
alert(1);
});
在jQuery(document).ready()
内部无效。
您认为那个原因是什么?我已经加载了具有该功能的自定义脚本。
<script type="text/javascript" src="/scripts/js/jquery.js"></script>
<script type="text/javascript" src="/scripts/js/customScript.js"></script>
任何答案都会受到赞赏和奖励。
谢谢!
答案 0 :(得分:2)
如果您在<head>
中加载,那么您的代码执行时.test
尚未加载。因此,jQuery(".test")
会返回[]
,因此click
事件无法附加。如果您将<script>
移到<body>
中的最后一个,它应该有用。
答案 1 :(得分:1)
您看到的行为正常且正确。
当你说:
jQuery(".test").click(function() {
alert(1);
});
这意味着“使用类'test'找到现在现在的所有元素,并为这些元素分配一个点击处理程序”。如果您将此类代码放在文档之外,那么浏览器将不会解析在该脚本之后的任何HTML,因此它不会在页面下方找到任何已定义的元素 - 它们在DOM中不存在。
将代码放在document.ready中(或在onload事件处理程序中)意味着在整个页面被解析之前它不会运行,此时所有元素都将存在并且可以从代码中访问。 (如果你在所有HTML之后将它放在页面底部,它也应该有效。)