提问人:Jeff 提问时间:11/17/2009 最后编辑:Jeff 更新时间:11/17/2009 访问量:333
jQuery初学者问题
jQuery beginner questions
问:
我已经完成了 PC RegEx 并继续使用 jQuery。;)
由于对 JavaScript 和 jQuery 几乎一无所知,一位朋友说服我用它替换所有旧脚本。从我目前所看到/读到的内容来看,它看起来很容易。
首先,我的偏好是在标签之前加载所有 JS。jQuery可以吗,还是应该加载到?找不到任何关于此的讨论。</body>
<head>
“子”jQuery脚本呢?我假设,由于 ,我能够将它们加载到我想要的任何位置。右?$(document).ready(function()
我将替换一些我一直在使用的旧脚本:
jQuery会进行帧破坏吗?不以为然。
jQuery是否进行表单/元素聚焦?认为是的。
编辑:
对不起所有额外的问题。
我所说的“子脚本”是指“我所有的普通脚本”,例如:
<script type="text/javascript" src="tooltips.js"></script>
<script type="text/javascript" src="popups.js"></script>
答:
从我所看到的很多jQuery的例子来看,把它放在页面的底部是新的趋势。
一旦你有了,你应该能够继续在大括号之间放置“子脚本”。$(document).ready
我不知道帧破坏,但如果你可以用 Javascript 做到这一点,没有什么能阻止你在 jquery 中使用相同的脚本。
你应该像使用 javascript 本身一样进行表单/元素聚焦。
玩得开心jQuery,希望这对一些人有所帮助。
你真的应该在这里将独特的问题分成单独的问题。但总的来说,要记住的主要事情是,jQuery只是Javascript之上的一个框架。它只是使事情更容易做,并且(大部分)在浏览器之间保持一致。
要回答您的第一个问题,将所有脚本放在末尾就可以了。如果你把所有东西都包装在调用中,那就没关系了,因为它会等到浏览器准备好让 Javascript 开始对 DOM 起作用。<body>
$(document).ready(function(){});
除此之外,只需通读 http://docs.jquery.com
评论
jQuery 的一般语法为:
$(document).ready(function(){
[insert all your jquery scripts to run at load here]
});
这应该放在页面的 head 部分,然后在文档准备好运行 DOM 时运行
好吧,将所有脚本都放在标签中通常是个好主意。这不是完全必要的,但它这样做是因为 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 帧破坏逻辑。
出于速度原因,脚本位于文档的底部。当您的浏览器正在下载 javascript 时,它没有执行任何其他操作(包括下载文档的其余部分)。
您可以在任何地方加载子 Javascript 文件,但同样,页面底部是最好的。典型的设置是:
- 参考jQuery(最好是Google托管的jQuery:http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js - 这样做会大大增加用户浏览器中已经有缓存版本的可能性,这意味着他们不需要再次下载它
- 引用子对象
- 调用 $(document).ready
有关将 Javascript 文件放在哪里的更多信息,请使用 ySlow 插件并阅读 Steve Souders 的所有内容(我想到了“甚至更快的网站”,尽管它有点高)。
帧破坏应该很容易自己完成,jQuery带有一些很酷的选择器和增强的表单功能。
以下是我从哪里开始使用jQuery的纲要 -
下载 HTML 文档并进行筛选,以了解库的结构以及您可以使用哪些命令。在本地拥有文档的速度更快,搜索功能运行良好。
请查看有关 jQuery 事件对象的注释,因为它们解释了事件模型如何工作的一些基本概念。
一旦熟悉了核心 API,您可能会发现您需要为页面中所需的定制功能编写插件。在这一点上,插件创作指南是必须阅读的,因为它将鼓励在代码结构方面养成良好的习惯。
订阅jQuery博客。这不仅可以让您及时了解即将发布的版本中可能出现的新功能,还可以深入了解您不熟悉的框架领域。我可以推荐的一些是(排名不分先后):
为了回答您的具体问题,
$(document).ready(function() { ... })
(也是简写)将在 DOM 加载后立即执行。这通常是您要放置页面设置代码的位置。$(function() { ... });
在页面中包含其他脚本也可以。如果您更愿意将脚本引用放在页面底部,那就去做吧(尽管在第一次访问您的网站后,脚本通常会被缓存)。如果您可以从 CDN 提供某些脚本,例如来自 google API 的 jQuery 脚本,请使用它,因为脚本很可能已经为客户端缓存了。
我在jQuery核心中没有看到任何用于帧破坏的东西,它要么是你需要自己实现的东西,要么是看看已经编写的无数插件 - 很有可能,如果这是一个常见的场景并且有用,那么有人已经写了它。
当你说形式元素聚焦时,你是什么意思?你的意思是,如果一个元素有焦点时满足某个条件,焦点就会跳到另一个/下一个元素?同样,我还没有在jQuery核心中看到它,但是看看插件,我想它已经完成了。或者,这可能是您的第一个jQuery插件项目:)
评论
<input>
下一个:PHP 如何处理文件中的函数?
评论