语法
公鸡酸是“准备事件”的简称
鸡酮酸的断行性和链性
嵌套过滤器由Nathan Long
缓存一个集合并通过roosteronacid在同一行上执行命令
包含选择器roosteronacid
定义元素创建时的属性
访问jQuery函数就像访问roosteronacid数组一样
noConflict函数- Oli释放$变量
通过nickf隔离noConflict模式下的$变量
无冲突模式由鸡酮酸
数据存储
数据函数-通过TenebrousX将数据绑定到元素
HTML5数据属性支持,在类固醇!由roosteronacid
Filip dupanovic设计的jQuery元数据插件
优化
用鸡酮酸优化复合选择剂的性能
lupefiasco的上下文参数
Nathan Long的保存和重用搜索
创建HTML元素并保持引用,检查元素是否存在,编写自己的选择器
杂项
Check the index of an element in a collection by redsquare
Live event handlers by TM
Replace anonymous functions with named functions by ken
Microsoft AJAX framework and jQuery bridge by Slace
jQuery tutorials by egyamado
Remove elements from a collection and preserve chainability by roosteronacid
Declare $this at the beginning of anonymous functions by Ben
FireBug lite, Hotbox plug-in, tell when an image has been loaded and Google CDN by Colour Blend
Judicious use of third-party jQuery scripts by harriyott
The each function by Jan Zich
Form Extensions plug-in by Chris S
Asynchronous each function by OneNerd
The jQuery template plug-in: implementing complex logic using render-functions by roosteronacid
Replace anonymous functions with named functions. This really supercedes the jQuery context, but it comes into play more it seems like when using jQuery, due to its reliance on callback functions. The problems I have with inline anonymous functions, are that they are harder to debug (much easier to look at a callstack with distinctly-named functions, instead 6 levels of "anonymous"), and also the fact that multiple anonymous functions within the same jQuery-chain can become unwieldy to read and/or maintain. Additionally, anonymous functions are typically not re-used; on the other hand, declaring named functions encourages me to write code that is more likely to be re-used.
一个例子;而不是:
$('div').toggle(
function(){
// do something
},
function(){
// do something else
}
);
我喜欢:
function onState(){
// do something
}
function offState(){
// do something else
}
$('div').toggle( offState, onState );
说到技巧和技巧,以及一些教程。我发现Jeffery Way的这些系列教程(“jQuery绝对初学者”视频系列)非常有用。
它针对那些刚接触jQuery的开发人员。他展示了如何用jQuery创建许多很酷的东西,比如动画,创建和删除元素等…
我从中学到了很多。他展示了如何简单地使用jQuery。
现在我喜欢它,我可以阅读和理解任何jQuery脚本,即使它很复杂。
这里有一个我喜欢的例子“调整文本大小”
1 - jQuery……
<script language="javascript" type="text/javascript">
$(function() {
$('a').click(function() {
var originalSize = $('p').css('font-size'); // get the font size
var number = parseFloat(originalSize, 10); // that method will chop off any integer from the specified variable "originalSize"
var unitOfMeasure = originalSize.slice(-2);// store the unit of measure, Pixle or Inch
$('p').css('font-size', number / 1.2 + unitOfMeasure);
if(this.id == 'larger'){$('p').css('font-size', number * 1.2 + unitOfMeasure);}// figure out which element is triggered
});
});
</script>
2- CSS样式…
<style type="text/css" >
body{ margin-left:300px;text-align:center; width:700px; background-color:#666666;}
.box {width:500px; text-align:justify; padding:5px; font-family:verdana; font-size:11px; color:#0033FF; background-color:#FFFFCC;}
</style>
2 - HTML……
<div class="box">
<a href="#" id="larger">Larger</a> |
<a href="#" id="Smaller">Smaller</a>
<p>
In today’s video tutorial, I’ll show you how to resize text every time an associated anchor tag is clicked. We’ll be examining the “slice”, “parseFloat”, and “CSS” Javascript/jQuery methods.
</p>
</div>
强烈推荐这些教程…
http://blog.themeforest.net/screencasts/jquery-for-absolute-beginners-video-series/
在元素创建时定义属性
在jQuery 1.4中,你可以在创建元素时使用对象文字来定义属性:
var e = $("<a />", { href: "#", class: "a-class another-class", title: "..." });
... 你甚至可以添加样式:
$("<a />", {
...
css: {
color: "#FF0000",
display: "block"
}
});
这里有一个文档链接。
似乎大多数有趣和重要的技巧都已经提到了,所以这一点只是一个小小的补充。
这个小技巧就是jQuery。每个(对象,回调)函数。每个人都可能使用jQuery.each(回调)函数来遍历jQuery对象本身,因为这很自然。jQuery。每个(对象,回调)实用程序函数迭代对象和数组。在很长一段时间里,除了不同的语法之外,我不知道它能做什么(我不介意写所有时髦的循环),我有点惭愧,直到最近我才意识到它的主要优点。
问题是,自从jQuery的循环体。每个(对象,回调)是一个函数,每次在循环中都获得一个新的作用域,这在循环中创建闭包时尤其方便。
换句话说,一个典型的常见错误是这样做的:
var functions = [];
var someArray = [1, 2, 3];
for (var i = 0; i < someArray.length; i++) {
functions.push(function() { alert(someArray[i]) });
}
现在,当您调用函数数组中的函数时,您将得到三次警报,内容为undefined,这很可能不是您想要的。问题是只有一个变量i,而所有三个闭包都指向它。当循环结束时,i的最终值是3,somearray[3]是未定义的。你可以通过调用另一个函数来为你创建闭包。或者你使用jQuery实用工具,它基本上会为你做:
var functions = [];
var someArray = [1, 2, 3];
$.each(someArray, function(item) {
functions.push(function() { alert(item) });
});
现在,当您调用这些函数时,您将得到三个内容为1、2和3的警报。
一般来说,没有什么是你自己不能做的,但拥有它是很好的。