使用需要js装载锤子

时间:2014-09-29 10:59:44

标签: javascript requirejs hammer.js js-amd

我的项目目前同时包含jquery.hammer和hammer.js。如何使用requirejs访问特定范围的hammer.js?

Hammer.js有以下定义模块:

if ( typeof define == TYPE_FUNCTION && define.amd ) {
    define( function () {
        return Hammer;
    } );
} else if ( typeof module != 'undefined' && module.exports ) {
    module.exports = Hammer;
} else {
    window[exportName] = Hammer;
}

我正在尝试使用以下代码加载它 -

    require( ['hammer'], function ( Hammer ) {
        mod = Hammer; // Do something later with mod
    } );

我收到此错误:"未捕获错误:匿名定义()模块不匹配:function(){             返回锤子;         } http://requirejs.org/docs/errors.html#mismatch"

2 个答案:

答案 0 :(得分:1)

您必须为您的模块命名:

if (typeof define == TYPE_FUNCTION && define.amd) {
    define('hammer',function() {
        return Hammer;
    });
} else if (typeof module != 'undefined' && module.exports) {
    module.exports = Hammer;
} else {
    window[exportName] = Hammer;
}

答案 1 :(得分:0)

当您在html中的脚本标记中添加锤子js时可能会发生此错误,如果您的情况将其删除并依赖于requirejs来加载它