JSPGen软件开发框架第四版 开发手册
2.9.1、使用闭包
(function($) {
// ... Code goes here
})(jQuery);
这是来自jQuery官方的插件开发规范要求,使用这种编写方式的好处是:
避免全局依赖、避免第三方破坏、兼容jQuery操作符 '$' 和 'jQuery '
这段代码在被解析时会形同如下代码:
var func = function($) {
// Code goes here
};
func(jQuery);
前者使用的是匿名函数形式。
2.9.2、扩展
jQuery提供了2个扩展‘基类’,分别为 $.extend和$.fn.extend,我们可以选择第二种方式做一个简单插件:
(function($){
$.fn.myplugin = function(){
alert(this[0].tagName);
}
})(jQuery);
// 之后我们便可按如下方式进行调用:
$('selector').myplugin();
2.9.3、选择器
jQuery提供了功能强大,并兼容多种css版本的选择器,不过在使用选择器遵循以下规则:
A、尽量使用Id选择器,效率高于css选择器;
B、避免迭代选择器,如$('.jquery .child'),获取 className为jquery的dom下的所有className为child的节点,其实这样编写代码付出的代价是非常大的,jQuery会不断的进行深层遍历来获取需要的元素,即使确实需要,我们也应该使用如:
$(selector, context)、$('selector1>selector2')
$(selector1).children(selector2)、$(selctor1).find(selector2) 之类的方式
C、使用缓存:每次调用 $('x')都会使用一部分内存,所以尽可能的这样定义:
var $x = $('selector');
$x.click(function(){
alert($x.attr('tagName'));
// 而不是
alert($(this).attr('tagName'));
// 更不是
alert($('selector').attr('tagName'));
});