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. 为什么要用链式操作呢?原因有两个:
- 代码更精简。链式操作能大大精简代码量,多项操作一行代码一气呵成,搞定;
- 优化性能。使用链式操作,所有操作代码共享一个jQuery对象,省去了逐步查询DOM元素的性能损耗