首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用jQuery加载inview RequireJS插件

无法使用jQuery加载inview RequireJS插件
EN

Stack Overflow用户
提问于 2014-08-27 10:20:15
回答 1查看 480关注 0票数 0

我正在尝试在我的应用程序中使用inview插件,它使用RequireJS加载脚本,并正在使用Almond构建/优化。我得到一个控制台错误:

代码语言:javascript
复制
TypeError: 'undefined' is not an object (evaluating 'global.jquery.inview')

它似乎来自需要添加到inview文件末尾的shim:

代码语言:javascript
复制
define("jquery.inview", ["jquery"], (function (global) {
    return function () {
        var ret, fn;
        return ret || global.jquery.inview;
    };
}(this)));

我的需要配置如下:

代码语言:javascript
复制
require.config({
    paths: {
        'jquery': '../../bower_components/jquery/dist/jquery',
        'text': '../../bower_components/requirejs-text/text',
        'tweenmax': '../../bower_components/greensock/src/uncompressed/TweenMax',
        'jquery.inview': '../../bower_components/jquery.inview/jquery.inview'
    },
    shim: {
        "jquery.inview": {
            deps: ['jquery'],
            exports: 'jquery.inview'
        }
    }
});

任何帮助都非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-27 10:36:46

jquery.inview是一个jQuery插件。因此,它会像插件一样,通过修改$来安装自己。当您告诉RequireJS它导出jquery.inview时,RequireJS试图解决全局空间中的jquery.inview问题,这是因为jQuery可以作为$jQuery在全局空间中访问,而不是以jquery的形式访问。

您可以不使用exports,也可以将其设置为jquery.inview确实定义的内容。例如,阅读jquery.inview的代码,我看到它设置了$.event.special.inview,这样您就可以在exports中使用它。

如果您想知道,对于jQuery插件,exports值只对RequireJS的簿记有用。您并不是通过插件导出的值来访问插件,而是通过它通过jQuery公开的API访问插件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25524587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档