从jQuery迁移到Zepto - $ .data() - 未捕获TypeError:undefined不是函数

时间:2014-07-27 16:27:53

标签: javascript jquery zepto

我有一些JavaScript,结果如下:

    $.fn.flips1         = function( options ) {

    if ( typeof options === 'string' ) {

        var args = Array.prototype.slice.call( arguments, 1 );

        this.each(function() {

            var instance = $.data( this, 'flips1' );

            if ( !instance ) {
                logError( "cannot call methods on flips1 prior to initialization; " +
                "attempted to call method '" + options + "'" );
                return;
            }

            if ( !$.isFunction( instance[options] ) || options.charAt(0) === "_" ) {
                logError( "no such method '" + options + "' for flips1 instance" );
                return;
            }

            instance[ options ].apply( instance, args );

        });

    } 
    else {

        this.each(function() {

            var instance = $.data( this, 'flips1' );
            if ( !instance ) {
                $.data( this, 'flips1', new $.Flips1( options, this ) );
            }
        });

    }

    return this;

};

该代码适用于jQuery。在尝试移植到Zepto之后(使用Zepto Builder中包含的data.js模块的自定义构建),我继续得到一个" Uncaught TypeError:undefined不是一个函数"与 else 语句中的行var instance = $.data( this, 'flips1' );的$ .data部分相关。

环顾四周,似乎有很多轶事证据表明Zepto的工作方式不同而且#39;在这方面,但没有建议解决问题。

有人可以建议如何使用Zepto实现这一点吗?

0 个答案:

没有答案