jQuery(二)基础核心


jQuery基础核心
一、代码风格
 1.在jQuery程序上,不管是页面元素的选择、内置的功能函数,都是美元符号“$”来起始的。而这个“$”就是jQuery当中最重要且独有的对象,所以我们在页面元素选择成执功能函数的时候就可以这么写。
    $(function(){});//执行一个匿名函数
    $('#box');//进行执行的ID元素选择
    $('#box').css('color','red');//执行功能函数
2.由于$本身就是jQuery对象的缩写形式,那么就可以用"$"符号来代替jQuery;
3. 在执行功能函数的时候,我们发现css()这个功能函数,那么就是说,这个返回的对象其实就是jQuery对象。
    $css('color','red');//理论上合法,但时间上是缺少元素而报错
4. 值得一提的是,执行了.css()这个功能函数后,最终返回的还是jQuery对象,那么也就是说,jQuery的代码模式是采用的连缀方式,可以不停的连续调用功能函数。
    $('#div').css('color','red').css('font-size','200px');//连缀
5.jQuery中代码的注释是和JavaScript是保持一致的。最常用的就是:单行注释“//”和多行注释“/*........*/”
二、加载模式
  之前的代码一直在使用$(function(){});这段代码进行收尾包裹,那我们为什么要包裹这段代码呢?原因就是我们jQuery库文件是在body元素之前加载的。我们必须要等待所有的DOM元素加载后,延迟支持DOM操作,否则就无法获取到。
  在延迟等待加载,JavaScript提供了一个事件为load,方法如下:
    window.οnlοad=function(){};  //javascript等待加载
    $(document).ready(function(){});//jQuery等待加载
load和ready的区别:
1、执行时机    load必须等待网页全部加载完毕,然后再执行代码包裹;ready只需要等待网页中的DOM结构加载完毕,就能执行包裹的代码
2、执行次数    load只能执行一次,如果第二次,那么第一次的执行就会被覆盖;ready可以执行多次,而且不会被覆盖。
3、简写方案  load:无;ready:$(function(){});
  在实际应用中,很少使用window.onload,因为它需要等待图片之类的大型元素加载完毕后才能执行js代码。而且只能单次执行,多次开发中会带来困难。
三、对象互换
  jQuery对象虽然是jQuery库独有的对象,但它也是通过JavaScript进行封装而来的。我们可以直接输出来得到它的信息。
    alert($);     //jQuery对象方法内部
    alert($());   //jQuery对象返回的对象,还是jQuery
    alert($('#box'));//包裹ID元素返回对象,还是jQuery
  从上面三组代码我们发现:只要使用了包裹后,最终返回的是jQuery对象。这样的好处是显而易见的,就是可以连缀处理。但有时,我们也需要返回原生的DOM对象,比如:
    alert(document。getElementById('#box'));
  jQuery想要达到原生的DOM对象,那么可以这么处理:alert($('#box').get(0));//ID元素的第一个原生DOM
  从上面get(0),这里的索引看出,jQuery是可以进行批量处理DOM的,这样可以在很多需要循环遍历的处理上更加的得心应手。
四、多个库之间的冲突
  当一个项目中引入多个第三方库的时候,由于没有命名空间的约束(命名空间就好比同一个目录下的文件夹一样,名字相同就会产生冲突),库与库之间的冲突在所难免。
  那么。既然有冲突,为什么要使用多个库呢,原因是jQuery只不过是DOM操作为主的库,方便我们日常web开发。但有时,我们的项目有更多特殊的功能需啊哟引进其他的库,比如用户界面UI方面的库,游戏引擎方面的库等一系列的。
  而很多库,都使用“$”作为基准起始符,如果想和jQuery共容有两种方法:
  1.将jQuery库在base库之前引入,那么“$”的所有权就归base库所有。而jQuery可以直接使用jQuery对象调用,或者创建一个“$$”符给jQuery使用。
    var  $$=jQuery;//创建一个$$的jQuery的对象
    $(function(){//这是base的$
           alert($('#box').get(0));//这是base的$
           alert($$('#box').width());//这是jQuery的$$
    });
  2.如果将jQuery库在base库之后引入,那么“$”的所有权就归jQuery库所有,而base库将会冲突而失去作用。这里jQuery提供了一个方法:
    jQuery noConfict();//将$符所有权剔除
    var $$=jQuery;
    $(function(){
         alert($('#box').get(0));
         alert($$('#box').width());
    });                                            
 
posted @ 2017-03-30 13:37  傲骄鹿先生  阅读(38)  评论(0编辑  收藏  举报