首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未定义RequireJS noUiSlider

未定义RequireJS noUiSlider
EN

Stack Overflow用户
提问于 2016-12-07 16:55:40
回答 1查看 2.3K关注 0票数 0

我对https://github.com/leongersen/noUiSlider有意见

使用requireJS,config.js和build.js

代码语言:javascript
复制
 paths: {
    nouislider: '../core/lib/nouislider/nouislider',
  },
  shim: {
    nouislider: {
      deps: ['jquery'],
      exports: '$'
    },
  },

剧本:

代码语言:javascript
复制
require(['jquery', 'nouislider'], function ($) {
"use strict";
  $(function () {
    var range = document.getElementById('range');
    range.style.height = '400px';
    range.style.margin = '0 auto 30px';
    noUiSlider.create(range, {
      connect: true,
      behaviour: 'tap',
      start: [ 500, 4000 ],
      range: {
        // Starting at 500, step the value by 500,
        // until 4000 is reached. From there, step by 1000.
        'min': [ 0 ],
        '10%': [ 500, 500 ],
        '50%': [ 4000, 1000 ],
        'max': [ 10000 ]
      }
    });
  });
});

在我的网站上,我有一个错误ReferenceError: noUiSlider没有定义

有人有同样的问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-07 17:01:32

你需要这样做:

代码语言:javascript
复制
require(['jquery', 'nouislider'], function ($, noUiSlider) {

我刚刚在回调中添加了最后一个参数。如果您查看它的源代码,您将发现它是否存在AMD加载程序(检查define是一个函数并在其上具有属性amd ),如果是的话,它会调用define。因此,您必须像我上面展示的那样使用模块的值,而不是依赖noUiSlider在全局空间中的存在。

顺便说一句,为调用shim的代码设置一个define是完全无用的。shim只适用于不使用define的代码。因此,您应该删除问题中显示的shim

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

https://stackoverflow.com/questions/41023120

复制
相关文章

相似问题

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