jquery和zepto的区别

1.zepto对象不能自定义事件

例如执行: $({}).bind(‘cust‘, function(){});
     结果:  TypeError: Object has no method ‘addEventListener‘
解决办法是创建一个脱离文档流的节点作为事件对象

例如: $(‘‘).bind(‘cust‘, function(){});

2.Zepto 的选择器表达式: [name=value]  中value 必须用 双引号 "  or 单引号 ‘ 括起来

例如执行:$(‘[data-userid=123123123]‘)
         结果:Error: SyntaxError: DOM Exception 12

解决办法: $(‘[data-userid="123123123]"‘) or $("[data-userid=‘123123123‘]")

(1)zepto的选择器没有办法选出 $("div[name!=‘abc‘]") 的元素

(2)zepto获取select元素的选中option不能用类似jq的方法$(‘option[selected]‘),因为selected属性不是css的标准属性

应该使用$(‘option‘).not(function(){ return !this.selected })
    比如:jq:$this.find(‘option[selected]‘).attr(‘data-v‘) * 1
 zepto:$this.find(‘option‘).not(function() {return !this.selected}).attr(‘data-v‘) * 1
   但是获取有select中含有disabled属性的元素可以用 $this.find("option:not(:disabled)") 因为disabled是标准属性

3.Zepto 是根据标准浏览器写的,所以对于节点尺寸的方法只提供 width() 和 height(),省去了 innerWidth(), innerHeight(),outerWidth(),outerHeight()

Zepto.js: 由盒模型( box-sizing )决定
jQery: 忽略盒模型,始终返回内容区域的宽/高(不包含 padding 、 border )解决方式就是使用 .css(‘width‘) 而不是 .width() 。

(1)边框三角形宽高的获取

jQuery 使用 .width() 和 .css(‘width‘) 都返回 ,高度也一样;
Zepto 使用 .width() 返回 ,使用 .css(‘width‘) 返回 0px 。
所以,jQuery 使用 .outerWidth() / .outerHeight() ;Zepto 使用 .width() / .height()

(2)offset()

Zepto.js: 返回 top 、 left 、 width 、 height
jQuery: 返回 width 、 height

(3)隐藏元素

Zepto.js: 无法获取宽高;
jQuery: 可以获取。

4.zepto的each方法只能遍历数组,不能遍历json对象

5.zepto的jsonp  callback函数名无法自定义

6.DOM操作区别

jq代码

  1. (function($) {
  2. $(function() {
  3. var $list = $(‘<ul><li>jQuery 插入</li></ul>‘, {
  4. id: ‘insert-by-jquery‘
  5. });
  6. $list.appendTo($(‘body‘));
  7. });
  8. })(window.jQuery);

zepto代码

  1. Zepto(function($) {
  2. var $list = $(‘<ul><li>Zepto 插入</li></ul>‘, {
  3. id: ‘insert-by-zepto‘
  4. });
  5. $list.appendTo($(‘body‘));
  6. });

jQuery 操作 ul 上的 id 不会被添加,Zepto 可以在 ul 上添加 id

7.事件触发区别

jq代码

  1. (function($) {
  2. $(function() {
  3. $script = $(‘<script />‘, {
  4. src: ‘http://cdn.amazeui.org/amazeui/1.0.1/js/amazeui.min.js‘,
  5. id: ‘ui-jquery‘
  6. });
  7. $script.appendTo($(‘body‘));
  8. $script.on(‘load‘, function() {
  9. console.log(‘jQ script loaded‘);
  10. });
  11. });
  12. })(window.jQuery);

zepto代码

  1. Zepto(function($) {
  2. $script = $(‘<script />‘, {
  3. src: ‘http://cdn.amazeui.org/amazeui/1.0.1/js/amazeui.js‘,
  4. id: ‘ui-zepto‘
  5. });
  6. $script.appendTo($(‘body‘));
  7. $script.on(‘load‘, function() {
  8. console.log(‘zepto script loaded‘);
  9. });
  10. });

使用 jQuery时load事件的处理函数不会执行,使用Zepto时load事件的处理函数会执行

时间: 2024-10-07 11:51:53

jquery和zepto的区别的相关文章

jquery.fn.extend与jquery.extend用法与区别

关于jquery.fn.extend与jquery.extend用法与区别. jQuery为开发插件提拱了两个方法,分别是:  代码如下 复制代码 jQuery.fn.extend(object);  和   jQuery.extend(object); jQuery.extend(object); 为扩展jQuery类本身.为类添加新的方法. jQuery.fn.extend(object);给jQuery对象添加方法. fn 是什么东西呢.查看jQuery代码,就不难发现.  代码如下 复制

jQuery与js的区别,并有基本语法详解,

通过过一下对比,我们能很清楚的发现jquery与js的区别,运用jquery能大量减少代码量,不过js里面关于时间的setinterval和settimeout只能用js <script src="jquery-1.11.2.min.js"></script>: 引用文件的语句一定要放在最前面,即使写了新的js方法和引用的js文件,也要把Jquery文件的引用语句放在最前面.下面就说一下Jquery和js的区别: 1.找元素(两种方法一一对应): js方法: v

html()和text()这两个jQuery方法有什么区别

html()和text()这两个jQuery方法有什么区别:标题中的两个方法是jQuery非常常用的两个方法,并且有时候作用似乎是一模一样的,其实这只是一种假象而已,下面结合实例来介绍一下他们的区别,首先看一段代码实例: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www

对比jQuery和Zepto

JavaScript库——jQuery和Zepto jQuery是在Web上应用很广泛的JavaScript库,它提供了大量的工具和API函数,使用它的人相当普遍,使用的门槛也比较低.它的API语义对初学者很宽容,出现各种失误也不会抛出JavaScript错误.大多数jQuery方法都是可链接的,也就是说这些方法都会返回jQuery对象,所以可以把任意多个方法链接到一个DOM引用上.正因如此,为jQuery贡献代码的人很多,导致jQuery的每个功能都有代价,代码库的不断膨胀,文件尺寸成为最大负

jQuery和javascript的区别

      jQuery接近了尾声,加上一篇总结性的博客,这样就完美了嘛.      来说说jQuery,写的更少,做的更多,核心理念.大家都说"有了jQuery,天天喝茶水",这也算是站在巨人的肩膀上了吧 .就从一开始的B/S项目开始吧.当时牛老师带着我们一起做<牛腩新闻发布系统>的时候就已经提到了,当时的我们也是盲人摸象,到了现在还是要和原先一起知识进行对比,进行总结一下吧.       首先来说说jQuery和javascript的区别吧,对比出效率,这一点也不差.首

jquery parent()和parents()区别

parent(exp) 取得一个包含着所有匹配元素的唯一父元素的元素集合. 你可以使用可选的表达式来筛选. 查找段落的父元素中每个类名为selected的父元素. HTML 代码: <div><p>Hello</p></div><div class="selected"><p>Hello Again</p></div> jQuery 代码: $("p").parent(&

jQuery,zepto手机端用on将子元素事件委托给body或document无效

jQuery,zepto手机端用on将子元素事件委托给body或document无效 在移动端,绑定在普通的div元素上是可以的,但是绑定在body上无效,document也是无效. <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <meta name="viewport" content="width=d

基于jQuery或Zepto实现实时监控用户浏览信息

对于一些大型公司,想要有一些监控用户行为的分析,怎么办? 比如一个场景,A公司想要监控用户浏览当前屏幕有哪些数据怎么办? 那么就用到本文所提的监控解决方案了: 1.首先要监控用户到底在该屏停留了多久: 2.基于1确定用户是停留在了本页面而没有滑动手机屏幕: 3.在用户未达到条件后的callback机制. 基于以上的问题,我们可以想到时间分片 1 /* This is a expose advertisements component. 2 * Base on some class librari

jQuery:find()与children()区别

一.find() 1.1 说明 find()方法返回被选元素的后代元素,一路向下直到最后一个后代. 1.2 示例 <div>     <p>         <span>1</span>     </p>     <span>2</span> </div> <script> console.log($('div').find('span')); </script> <!--