应用场景不同,因为jQuery的强大导致了他本身也强大,所以使他不太适合移动端的开发,Zepto就解决了这个问题,在Zepto里面封装了jQuery的一些基本功能,其他功能都拆分开来,做到让开发者在需要的时候手动引入,有点模块化开发的意味,按需引入,所以他本身轻巧的,更适合移动端。
虽然Zepto和jQuery的API十分相似,但是在细微上还是有区别的,我觉得会出现的坑如下:
1、Zepto的each方法只能遍历数组,不能遍历JSON对象
2、offset()的区别:
Zepto返回{top,left,width,height};
jQuery返回{width,height};
3、Zepto无法获取隐藏元素宽高,jQuery可以
4、事件委托的区别
在Zepto中,当a被点击后,一次弹出了“a事件”和“b事件”,说明虽然事件委托在.a上,可是同时也触发了.b上的委托。但是在jQuery中只会触发.a上面的委托弹出“a事件”。说明Zepto中的事件是一个一个触发的,也就是同步的,会出现事件b等着事件a完后才去触发的情况,而jQuery则是同时去触发,a触发的同时b也触发,这个时候还没有b这个对象,所以b的事件不会被触发。
var $doc = $(document);
$doc.on('click','.a',function(){
alert('a事件');
$(this).removeClass('a').addClass('b');
});
$doc.on('click','.b',function(){
alert('b事件');
});