




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、缓存变量DOM的遍历是非常昂贵的,所以尽量缓存一些可能会被重新用到的变量。/ badh = $('#element').height();$('#element').css('height',h-20); / good$element = $('#element');h = $element.height();$element.css('height',h-20); 避免全局变量使用jQuery和使用javascript一样,最好确保你的变量在你的函数作用域内。/ bad$element = $
2、('#element');h = $element.height();$element.css('height',h-20); / goodvar $element = $('#element');var h = $element.height();$element.css('height',h-20); 使用匈牙利命名法在变量前加上一个$符号,很容易看出来这是一个jQuery变量。/ badvar first = $('#first');var second = $('#second&
3、#39;);var value = $first.val(); / better - we use to put $ symbol before jQuery-manipulated objectsvar $first = $('#first');var $second = $('#second'),var value = $first.val(); 使用 Var 链(单 Var 模式) 不要使用多个var声明,可以将它们合并为一个var声明,建议将没有指定值的变量放在最后。var $first = $(
4、9;#first'), $second = $('#second'), value = $first.val(), k = 3, cookiestring = 'SOMECOOKIESPLEASE', i, j, myArray = ; 最好使用on 绑定事件最新版本的jQuery已经将click()改变为函数on('click')的简写。在之前的版本中实现的不同,click(
5、)简写bind()。在jQuery 1.7中,on()是首选方法用于附加事件处理程序。然而,对于一致性可以简单地使用on()。/ bad$first.click(function() $first.css('border','1px solid red'); $first.css('color','blue');); $first.hover(function() $first.css
6、('border','1px solid red');) / better$first.on('click',function() $first.css('border','1px solid red'); $first.css('color','blue');) $first.on('hover',function() &
7、#160;$first.css('border','1px solid red');) 压缩精简javascript一般来说,我们要尽可能的合并函数/ bad$first.click(function() $first.css('border','1px solid red'); $first.css('color','blue');); / better$first.on('cl
8、ick',function() $first.css( 'border':'1px solid red', 'color':'blue' ););使用链式操作根据上面的规则,jQuery很容易将方法链接在一起,我们要利用这一优点。/ bad$sec
9、ond.html(value);$second.on('click',function() alert('hello everybody'););$second.fadeIn('slow');$second.animate(height:'120px',500); / better$second.html(value);$second.on('click',function() alert('hello e
10、verybody');).fadeIn('slow').animate(height:'120px',500);保持代码的可读性当精简了javascript代码和使用了链式操作,你的代码有时候会变得不可读,尽量使用缩进和换行使代码变得漂亮些。/ bad$second.html(value);$second.on('click',function() alert('hello everybody');).fadeIn('slow').animate(height:
11、'120px',500); / better$second.html(value);$second .on('click',function() alert('hello everybody');) .fadeIn('slow') .animate(height:'120px',500);使用短路求值短路求值是一个从左到右求值的表达式,用 &&(逻辑与)
12、或 | (逻辑或)操作符。/ badfunction initVar($myVar) if(!$myVar) $myVar = $('#selector'); / betterfunction initVar($myVar) $myVar = $myVar | $('#selector');使用快捷的方式精简代码的方
13、式之一就是利用一些编码捷径。/ badif(collection.length > 0). / betterif(collection.length).复杂的操作要分离元素如果对DOM元素做大量操作(连续设置多个属性或css样式),建议首先分离元素然后在添加。/ badvar $container = $("#container"), $containerLi = $("#container li"),
14、;$element = null; $element = $containerLi.first(); /. a lot of complicated things / bettervar $container = $("#container"), $containerLi = $container.find("li"), $element = null; $element = $conta
15、inerLi.first().detach(); /.a lot of complicated things$container.append($element);了解技巧你可能对使用jQuery中的方法缺少经验,一定要查看的文档,可能会有一个更好或更快的方法来使用它。/ bad$('#id').data(key,value); / better (faster)$.data('#id',key,value);使用子查询缓存的父元素像之前提到的一样,DOM的遍历的代价很大,典型做法是缓存父元素并在选择子元素时重用这些缓存元素。/ badvar
16、; $container = $('#container'), $containerLi = $('#container li'), $containerLiSpan = $('#container li span'); / better (faster)var $container = $('#container '),
17、60; $containerLi = $container.find('li'), $containerLiSpan= $containerLi.find('span');避免通用选择符当和其他的选择符一起使用时,通用选择符非常的慢。/ bad$('.container > *'); / better$('.container').children();避免使用隐式通用选择符当你漏下了选择符,通用选择符(*)仍然起作用/ bad$('.somecla
18、ss :radio'); / better$('.someclass input:radio');优化选择符例如,Id选择符应该是唯一的,所以没有必要添加额外的选择符。/ bad$('div#myid'); $('div#footer a.myLink'); / better$('#myid');$('#footer .myLink');避免多个ID选择符再次强调ID 选择符应该是唯一的,不需要添加额外的选择符,更不需要多个后代ID选择符。/ bad$('#outer #inner');
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年赣南卫生健康职业学院单招职业技能测试题库及答案一套
- 言语康复练习试题
- 2025年湖南电子科技职业学院单招职业适应性测试题库附答案
- 2025年抚顺职业技术学院单招职业倾向性测试题库含答案
- 2025年合肥幼儿师范高等专科学校单招职业倾向性测试题库学生专用
- 2025河北省安全员-C证考试题库
- 幼儿园开学典礼方案2022范文
- 环保理念下的建筑设计创新与实践
- 产业转移练习 高中地理人教版(2019)选择性必修2
- 2025年河北对外经贸职业学院单招职业适应性测试题库1套
- 学校科技节活动方案
- 校园食品安全和膳食经费管理方案3篇
- TSGD7002-2023-压力管道元件型式试验规则
- 九年级化学下册 第12单元 化学与生活教案 (新版)新人教版
- 金融服务消费纠纷调解工作规范
- 后腹腔镜下输尿管切开取石术
- 二手车购买收据合同范本
- 《国际贸易实务(英文版)》(英文课件) - Ch 1 Introduction to International Trade Practices-Ch 5 Price
- 2022版义务教育英语课程标准整体解读课件
- 2024精美复工复产安全培训
- 01 H5入门知识课件
评论
0/150
提交评论