Jquery的初学!

1.jp的预加载方式;

页面加载完之前执行,与嵌入的js加载方式一样

(function ($) {
    alert('start');
})(jQuery);

页面加载后执行。

$(document).ready(function(){
    alert('jquery ready');
});

页面加载后执行。

$(function(){
    alert('jquery onload');
});

页面加载后执行。

jQuery(function($) {

  alert('jQuery ready ');

});

2.执行时间

window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行。

$(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕。

3.编写个数不同

window.onload不能同时编写多个,如果有多个window.onload方法,只会执行一个 

$(document).ready()可以同时编写多个,并且都可以得到执行

4.jq与js对象的互相转换;

 

        一、获取jquery对象

         1.    var  $v = $('#id');

         二、js对象转化成jquery对象

       1    var doc1=document.getElementById('div1');

             var $d=$(doc1);

        首先获取js的doc对象,然后直接加上$符号即可

        三、jquery对象转化成js对象

       1.     var var1= $('#div1')[0]

        2.    var var1=$('#div1').get(0)

       因此,可以通过两种方式将jquery对象转化成js对象,jquery选择器获取的为一个对象数组,通过获取下标来转化成js对象。

 

5.jq的链式调用什么意思?

jQuery的核心理念是Write less,Do more(写的更少,做的更多),那么链式方法的设计与这个核心理念不谋而合。那么从深层次考虑这种设计其实就是一种Internal DSL。

DSL是指Domain Specific Language,也就是用于描述和解决特定领域问题的语言。

 

6.jq的事件监听

7.jq的on 、live、delegat、bind 区别?

.bind()是直接绑定在元素上

.live()则是通过冒泡的方式来绑定到元素上的。更适合列表类型的,绑定到document DOM节点上。和.bind()的优势是支持动态数据。

.delegate()则是更精确的小范围使用事件代理,性能优于.live()

.on()则是最新的1.9版本整合了之前的三种方式的新事件绑定机制

 

 

8.jq的ajax;

 

9.如何解决$符号的冲突?

今天做项目的时候,写了一个ajax提交的js函数,然后在js调试的时候,提示发现 $.ajax ,前面的$ 符号不见了,通过网上搜索找到了下面的解决方法

jQuery中需要用到$符号,如果其他js库也定义了$符号,那么就会造成冲突,会影响到js代码的正常执行,目前从网上找到了不错的解决方法,大家可以参考下

jQuery中需要用到$符号,如果其他js库(例如大名鼎鼎的prototype)也定义了$符号,那么就会造成冲突,会影响到js代码的正常执行。jqeury提供了一些方案来避免这个问题,让我们来看看这几个方案有什么区别

方案1:
引入noConflict(),将$替换为其他符号
代码如下:

var $j = jQuery.noConflict();
$j(document).ready(function(){
$j("#btn1").click(function(){
alert("Text: " + $j("#test").text());
});
});

缺点:引入了这段代码后,不仅是当前的js文件,该html引用的所有js中,如果有用到jquery中的$,都得用$j来代替之前的$

方案2:
ready函数是jquery的入口函数,可以
将$(document).ready(function(){
替换成
jQuery( document ).ready(function( $){}
缺点:只对ready嵌套内的代码有效,对嵌套外的代码是无效的。如果你所有的逻辑,都在写ready函数中,那没问题。但我们一般都会在ready函数之外写一些子函数,然后ready函数再去调用这些函数。这个方案对这些函数是无效的,因此这套方案有局限性。

方案3(推荐,特别是开发js插件时):

给js内容包上一个函数
代码如下:

jQuery(function($){
//你的js代码放在这里(例如第二个方案提到的ready函数和子函数)
//如果是js文件,其实就是在文件头部和尾部各加一行代码
}

或者
代码如下:

(function($) {
//你的js代码
})(jQuery);

方案4 (个人理解)

一般$冲突的原因是一个页面引用了多个jquery文件造成的,为了保证项目的jquery版本库的一致性,最好只使用一个jquery版本,就可以避免类似的问题发生。

这个方法,没有上面两个方案的缺点,只会影响到被包在jQuery(function($){}中的代码。
不会影响到其他js代码,这一点很重要。试想一下,假如你写了一个js公共组件,该组件需要用到jquery,为了提高鲁棒性,需考虑$符号冲突问题。如果使用方案1,那么别人在使用时,还得遵守你的约定,把自己js代码中的$改成$,而如果使用方案3,既能避免$冲突对该组件的影响,又无需要求使用公共组件的人修改自己的代码。

 

10.jq需不需要做兼容?

使用相同版本的jq不需要做兼容

https://blog.csdn.net/liwenjieIT/article/details/77867130

11.jq.js  和jq.min.js 区别  开发时用那种 上线后用那种

一、区别:

1、jquery.min.js:是由完整版的jQuery库经过压缩得来,压缩后功能与未压缩的完全一样,只是将其中的空白字符、注释、空行等与逻辑无关的内容删除,并进行一些优化。

2、jquery.js:是完整的未压缩的jQuery库,文件比较大。

二、应用:

1、jquery.min.js:这个版本一般用于网站引用使用,减小文件体积,降低网站流量,提升访问速度等。

2、jquery.js:一般用于阅读学习源码或修改源码,一般不用于线上项目。

三、关于jQuery:

1、jQuery是继prototype之后又一个优秀的Javascrīpt框架。其宗旨是——WRITE LESS,DO MORE,写更少的代码,做更多的事情。

2、由于目前高校基本尚未开JavaScript的相关课程,目前jQuery的学习,使用,研究都仅限于在职Web程序员之间。

3、用jq的前提,首先要引用一个有jq的文件。

4、lt;script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>

5、这个是jquery官方最新的地址。可用在自己网站里加个这个,就能使用jquery了。 但仍然建议下载到本地服务器上。

jQuery是一套跨浏览器的JavaScript库,简化HTML与JavaScript之间的操作。由John Resig在2006年1月的BarCamp NYC上发布第一个版本。目前是由 Dave Methvin 领导的开发团队进行开发。全球前10000个访问最高的网站中,有59%使用了jQuery,是目前最受欢迎的JavaScript库。

12. 为什么要用链式操作呢?原因有两个:

  1. 代码更精简。链式操作能大大精简代码量,多项操作一行代码一气呵成,搞定;
  2. 优化性能。使用链式操作,所有操作代码共享一个jQuery对象,省去了逐步查询DOM元素的性能损耗

 

猜你喜欢

转载自blog.csdn.net/Le_OOP/article/details/81382750