zoukankan      html  css  js  c++  java
  • 非常适合新手的jq/zepto源码分析05

    zepto的原型  $.fn  属性:

    constructor              //构造行数
    forEach: emptyArray.forEach,    //都是原生数组的函数
    reduce: emptyArray.reduce,
    push: emptyArray.push,
    sort: emptyArray.sort,
    splice: emptyArray.splice,
    indexOf: emptyArray.indexOf,

     

    concat                  //合并数组,这里还包含了合并节点集合
    add                    //添加节点集合
    is                    //匹配是否包含该选择器
          find: function(selector){
                    var result, $this = this
                    if (!selector) result = $()
                    else if (typeof selector == 'object')
                        result = $(selector).filter(function(){
                            var node = this
                            return emptyArray.some.call($this, function(parent){
                                return $.contains(parent, node)
                            })
                        })
                    else if (this.length == 1) result = $(zepto.qsa(this[0], selector))
                    else result = this.map(function(){ return zepto.qsa(this, selector) })
                    return result
                },
    

      

    emptyArray.some()     http://www.cnblogs.com/jiebba/p/6514067.html   可以看看js几种遍历不同

    pluck              根据属性来返回节点集合
       // 设置宽高
            ;['width', 'height'].forEach(function(dimension){
                var dimensionProperty =
                    dimension.replace(/./, function(m){ return m[0].toUpperCase() })
    
                $.fn[dimension] = function(value){
                    var offset, el = this[0]
                    if (value === undefined) return isWindow(el) ? el['inner' + dimensionProperty] :
                        isDocument(el) ? el.documentElement['scroll' + dimensionProperty] :
                            (offset = this.offset()) && offset[dimension]
                    else return this.each(function(idx){
                        el = $(this)
                        el.css(dimension, funcArg(this, value, idx, el[dimension]()))
                    })
                }
            })
    

      

    
    
     //添加函数`after`, `prepend`, `before`, `append`,

    adjacencyOperators.forEach(function(operator, operatorIndex) { var inside = operatorIndex % 2 //=> prepend, append $.fn[operator] = function(){ // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings var argType, nodes = $.map(arguments, function(arg) { var arr = []

      

     zepto.Z.prototype = Z.prototype = $.fn
    

      

    绑定到原型上面

        window.Zepto = Zepto
        window.$ === undefined && (window.$ = Zepto)
        //绑定在全局
    

      

    代码仅供参考,具体功能可以自己扩展。

    个人博客 :很多好用的 npm 包 , 可以看看  https://gilea.cn/ 

    http://www.cnblogs.com/jiebba/p/6529854.html 

    http://www.cnblogs.com/jiebba    我的博客,来看吧!

    如果有错误,请留言修改下 哦!

  • 相关阅读:
    Rocket
    Rocket
    Rocket
    Rocket
    Rocket
    PHPstorm快捷键大全
    PHP命名规则
    第二章:第2章PHP基础语法
    第一章:初识PHP
    jQuery适用技巧笔记整合
  • 原文地址:https://www.cnblogs.com/jiebba/p/6531107.html
Copyright © 2011-2022 走看看