jQuery初学者问题

时间:2009-11-16 22:17:06

标签: jquery

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

6 个答案:

答案 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文件,但同样,页面底部最好。典型的设置是:

  1. 引用jQuery(最好是在Google上托管的那个: http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js - 这样做会大大增加用户在浏览器中已经拥有缓存版本的可能性,这意味着他们不会需要再次下载
  2. 引用子对象
  3. 致电$(document).ready
  4. 有关在哪里放置Javascript文件的更多信息,请使用ySlow插件并阅读Steve Souders的所有内容(“Even Faster Websites”会浮现在脑海中,虽然它有点高级)。

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