data-func的元素绑定方式 jquery和zepto的使用区别

 jquery:

var Sub = (typeof Sub == 'object') ? Sub : {};

Sub.init = function() {
    //data-func方法 x
    $('[data-func]').each(function(e) {
        var $this = $(this),
            data = $this.data();


        Sub.call($this, data);
    });
};


Sub.call = function(This, data) {
    if ($.isFunction(Sub[data.func])) {
        Sub[data.func](This, data);
    }
};


//js逻辑代码

Sub.readNum = function(e, data) {

    console.log(e)

console.log(data.id)

}

//在这里写入js的逻辑代码 元素绑定


  • 如果需要初始化的话---->Sub.init('readNum');



    Sub.init();



    zepto:

    var Sub = (typeof Sub == 'object') ? Sub : {};


    Sub.init = function() {
        //data-func方法 x
        $('[data-func]').each(function(e) {
            var obj = {},
                $this = $(this),
                data = $this.data('func');
            obj['func'] = data
            Sub.call($this, obj);
        });
    };


    Sub.call = function(This, data) {
        if ($.isFunction(Sub[data.func])) {
            Sub[data.func](This, data);
        }

    };


    //js逻辑代码

    Sub.readNum = function(e, data) {

        console.log(e)

    console.log(e.data('id'))

    }


    //在这里写入js的逻辑代码 元素绑定 --->以上可以看出 jquery和zepto的data的使用也是有区别的,jquerydata()不传参可以获取一个对象,获取整个一个元素的所有data,但是zepto必须传入相应参数,例如data-id  ---》e.data('id'),不传入参数会返回一个字符串



  • 如果需要初始化的话---->Sub.init('readNum');


    Sub.init();

  • 你可能感兴趣的:(jquery)