我已经完成了PC RegEx并继续使用jQuery。 ;)
对JavaScript和jQuery几乎一无所知,一位朋友说我用它来替换所有旧脚本。从我到目前为止看到/阅读的内容看起来非常简单。
首先,我的偏好是在</body>
标记之前加载所有JS。这对jQuery是可以的,还是应该加载到<head>
?找不到任何关于此的讨论。
“child”jQuery脚本怎么样?我假设因为$(document).ready(function()
,我可以将它们加载到我想要的任何地方。正确?
我将替换我一直在使用的一些旧脚本:
jQuery是否会进行帧破坏?不要思考。
jQuery是否进行表单/元素聚焦?想是的。
修改
对所有额外问题感到抱歉。
我对“子脚本”的意思是“我所有正常的脚本”,例如:
<script type="text/javascript" src="tooltips.js"></script>
<script type="text/javascript" src="popups.js"></script>
答案 0 :(得分:3)
这是我在jQuery开始的地方的简要介绍 -
Download the HTML documentation 并进行筛选,以了解图书馆的结构以及您可以使用的命令。在本地拥有文档更快,搜索功能也能很好地运行。
查看 notes on the jQuery event object ,因为它们解释了事件模型如何工作的一些基本概念。
熟悉核心API后,您可能会发现需要为页面中所需的定制功能编写插件。此时 plugin authoring guide is a must read 因为它会鼓励代码结构中的良好习惯。
订阅jQuery博客。这不仅可以让您及时了解即将发布的新功能,还可以深入了解您不熟悉的框架区域。我可以推荐一些(没有特别的顺序):
要回答您的具体问题,
$(document).ready(function() { ... })
(也是简写$(function() { ... });
)将在DOM加载后立即执行。这通常是 ,您要为页面设置代码。
在页面中有其他脚本也很好。如果您更喜欢将脚本引用放在页面底部,那就去吧(尽管在第一次访问您的站点之后,脚本通常缓存)。如果您可以从CDN提供某些脚本,例如google API中的jQuery脚本,那么请使用此脚本,因为脚本已经为客户端缓存了。
我没有在jQuery核心中看到任何关于framebusting的东西,它或者你需要自己实现的东西,或者看看myriad of plugins already written - 有机会,如果它是一个常见的场景并且有用,某人已经写下来。
当你说表格元素聚焦时,你的意思是什么?你的意思是如果一个元素有焦点时满足某个条件,焦点会跳转到另一个/下一个元素吗?再一次,我没有在jQuery核心中看到它,但看看插件,我想它已经完成了。或者,这可能是您的第一个jQuery插件项目:)
答案 1 :(得分:1)
从我见过的很多jQuery示例中,将它放在页面底部是新的趋势。
一旦你拥有$(document).ready
,你就应该能够在开放的大括号之间放置'子脚本'。
我不知道框架破坏,但是如果你能用Javascript做到这一点,没有什么能阻止你在jquery中使用相同的脚本。
你应该像使用javascript一样进行表单/元素聚焦。
享受jQuery的乐趣,并希望这有助于一些。
答案 2 :(得分:1)
你应该把这些独特的问题分成几个问题。但总的来说,要记住的主要事情是jQuery只是一个基于Javascript的框架。它只是让事情变得更容易,并且(大多数)在浏览器中保持一致。
要回答您的第一个问题,将所有脚本放在<body>
的末尾就可以了。如果你将所有内容都包含在$(document).ready(function(){});
个调用中,那就无所谓了,因为它等待浏览器准备好让Javascript开始对DOM进行操作。
除此之外,只需阅读http://docs.jquery.com
答案 3 :(得分:0)
jquery的一般语法是:
$(document).ready(function(){
[insert all your jquery scripts to run at load here]
});
这应该放在页面的head部分,然后在文档准备好运行时运行dom
答案 4 :(得分:0)
嗯,将所有脚本放在标签中通常是个好主意。这不是完全必要的,但它已经完成了因为A:它使它们更容易找到,而且B:有一些浏览器,或者至少曾经有过,如果编写脚本,实际上会将你的javascript渲染到屏幕上
我不确定“子”脚本的含义,但在文档就绪块之外“正常”声明的函数可以在任何地方使用。在内部声明的函数将仅在该块内可用。看看这个:
function bar() {
alert('test');
}
$(document).ready(function() {
var foo = function() {
alert('do something!');
};
foo(); //works
bar(); //works
});
bar(); //works
foo(); //error
jQuery对元素聚焦这样做:
<input type="text" id="myInput"/> <button onclick="$('#myInput').focus();">Focus</button>
就Framebusting而言,无论你目前使用哪种脚本都应该与你的jQuery一起工作,但是没有真正的内置jQuery帧破坏逻辑。
答案 5 :(得分:0)
出于速度原因,脚本位于文档的底部。当您的浏览器正在下载javascript时,它没有做任何其他事情(包括下载文档的其余部分)。
您可以在任何地方加载子Javascript文件,但同样,页面底部最好。典型的设置是:
有关在哪里放置Javascript文件的更多信息,请使用ySlow插件并阅读Steve Souders的所有内容(“Even Faster Websites”会浮现在脑海中,虽然它有点高级)。
框架破坏应该很容易自己完成,jQuery带有一些很酷的选择器和增强的表单功能。