jQuery初学者问题

jQuery beginner questions

提问人:Jeff 提问时间:11/17/2009 最后编辑:Jeff 更新时间:11/17/2009 访问量:333

问:

我已经完成了 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查询

评论


答:

1赞 Chris 11/17/2009 #1

从我所看到的很多jQuery的例子来看,把它放在页面的底部是新的趋势。

一旦你有了,你应该能够继续在大括号之间放置“子脚本”。$(document).ready

我不知道帧破坏,但如果你可以用 Javascript 做到这一点,没有什么能阻止你在 jquery 中使用相同的脚本。

你应该像使用 javascript 本身一样进行表单/元素聚焦。

玩得开心jQuery,希望这对一些人有所帮助。

1赞 Agent_9191 11/17/2009 #2

你真的应该在这里将独特的问题分成单独的问题。但总的来说,要记住的主要事情是,jQuery只是Javascript之上的一个框架。它只是使事情更容易做,并且(大部分)在浏览器之间保持一致。

要回答您的第一个问题,将所有脚本放在末尾就可以了。如果你把所有东西都包装在调用中,那就没关系了,因为它会等到浏览器准备好让 Javascript 开始对 DOM 起作用。<body>$(document).ready(function(){});

除此之外,只需通读 http://docs.jquery.com

评论

0赞 andyface 11/17/2009
jQuery文档很棒。
0赞 Jeff 11/17/2009
我正在阅读文档。我只需要感觉自己起步正确,知道我能完成什么。
0赞 Kevin Brown 11/17/2009
代理的权利。看看文档!为了加快速度,最好将 jscript 放在页面 HTML 的底部。
0赞 andyface 11/17/2009 #3

jQuery 的一般语法为:

$(document).ready(function(){

[insert all your jquery scripts to run at load here]

});

这应该放在页面的 head 部分,然后在文档准备好运行 DOM 时运行

0赞 Ben Lesh 11/17/2009 #4

好吧,将所有脚本都放在标签中通常是个好主意。这不是完全必要的,但它这样做是因为 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 帧破坏逻辑。

0赞 Mike Robinson 11/17/2009 #5

出于速度原因,脚本位于文档的底部。当您的浏览器正在下载 javascript 时,它没有执行任何其他操作(包括下载文档的其余部分)。

您可以在任何地方加载子 Javascript 文件,但同样,页面底部是最好的。典型的设置是:

  1. 参考jQuery(最好是Google托管的jQuery:http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js - 这样做会大大增加用户浏览器中已经有缓存版本的可能性,这意味着他们不需要再次下载它
  2. 引用子对象
  3. 调用 $(document).ready

有关将 Javascript 文件放在哪里的更多信息,请使用 ySlow 插件并阅读 Steve Souders 的所有内容(我想到了“甚至更快的网站”,尽管它有点高)。

帧破坏应该很容易自己完成,jQuery带有一些很酷的选择器和增强的表单功能。

3赞 Russ Cam 11/17/2009 #6

以下是我从哪里开始使用jQuery的纲要 -

下载 HTML 文档并进行筛选,以了解库的结构以及您可以使用哪些命令。在本地拥有文档的速度更快,搜索功能运行良好。

请查看有关 jQuery 事件对象的注释,因为它们解释了事件模型如何工作的一些基本概念。

一旦熟悉了核心 API,您可能会发现您需要为页面中所需的定制功能编写插件。在这一点上,插件创作指南是必须阅读的,因为它将鼓励在代码结构方面养成良好的习惯。

订阅jQuery博客。这不仅可以让您及时了解即将发布的版本中可能出现的新功能,还可以深入了解您不熟悉的框架领域。我可以推荐的一些是(排名不分先后):

为了回答您的具体问题,

$(document).ready(function() { ... })(也是简写)将在 DOM 加载后立即执行。这通常是您要放置页面设置代码的位置。$(function() { ... });

在页面中包含其他脚本也可以。如果您更愿意将脚本引用放在页面底部,那就去做吧(尽管在第一次访问您的网站后,脚本通常会被缓存)。如果您可以从 CDN 提供某些脚本,例如来自 google API 的 jQuery 脚本,请使用它,因为脚本很可能已经为客户端缓存了。

我在jQuery核心中没有看到任何用于帧破坏的东西,它要么是你需要自己实现的东西,要么是看看已经编写的无数插件 - 很有可能,如果这是一个常见的场景并且有用,那么有人已经写了它。

当你说形式元素聚焦时,你是什么意思?你的意思是,如果一个元素有焦点时满足某个条件,焦点就会跳到另一个/下一个元素?同样,我还没有在jQuery核心中看到它,但是看看插件,我想它已经完成了。或者,这可能是您的第一个jQuery插件项目:)

评论

0赞 Jeff 11/17/2009
谢谢拉斯。我所说的“聚焦”是一个简单的“形式聚焦”事件。加载页面时,将光标聚焦在表单的 .很平凡,但无论如何,我需要做一些事情。<input>