我将我的js文件放在head
标记内。
所以我这样做:
<html>
<head>
<script>
$(function() { //need this to work. Why?
$(".nc").click(function(){
alert("ok");
});
});
</script>
</head>
<body>
<span class="nc">click</span>
</body>
</html>
我的问题是,人们说使用$(function(){是错误的,但是如果我删除它就行不通。我该怎么办?
答案 0 :(得分:1)
回答这个问题:“为什么我的jquery不能在没有$(function(){in head?”的情况下工作?
它不起作用,因为$(function(){是$(document).ready()的快捷方式{基本上说“一旦我的所有HTML都完全加载,然后运行这个脚本”。没有$ (function(){,你的脚本尝试在加载后立即运行。由于它位于文档的头部,它会尝试在你的元素与class =“nc”之前运行。它不能将事件处理程序附加到元素那么将它包装在$(function(){中,只要你的脚本出现在加载jquery的脚本标记之后,即使它位于文档的头部,它也可以工作。
据说,最好的做法是将尽可能多的javascript加载到页面底部以改善加载时间,尤其是在无论如何加载DOM之前您不打算运行的脚本。
答案 1 :(得分:0)
$(function(){ ... });
没错。它是一个JQuery快捷方式。你需要它,你应该把你的JS放在脚本标签中。
答案 2 :(得分:0)
它有两种方式,你的意思是jQuery快捷方式,但你也可以使用它:
$( document ).ready(function() {
// some code
});
您忘记使用<script>
标记,但通常将您的JS放在<body>
的末尾。