Jquery 插件给出错误 $(...).ionRangeSlider not a function

Apu*_*rvG 5 javascript jquery jquery-plugins node.js reactjs

我正在尝试在我的 React 应用程序中使用 jquery 插件。每次我尝试使用某些 jquery 第三方插件时,都会收到一条错误消息,指出 $(...).somePlugin 不是函数。目前我正在尝试使用 ionRangeSlider。它给了我错误

Uncaught TypeError: (0 , _jquery2.default)(...).ionRangeSlider is not a function
Run Code Online (Sandbox Code Playgroud)

js文件

import $ from 'jquery'
import 'bootstrap-tagsinput'

class AddTagSection extends Component {


    componentDidMount=()=> {

        this.slider = $(this.inputSlider).ionRangeSlider();

    }

<div className="irs-wrapper">
                            <input type="text"  ref={node=>this.inputSlider=node} className='input-slider' id="ionSlider-newTag" name="ionSlider"/>
                        </div>
Run Code Online (Sandbox Code Playgroud)

以下是 ionRangeSlider.js (插件)中调用的函数

$.fn.ionRangeSlider = function (options) {
        return this.each(function() {
            if (!$.data(this, "ionRangeSlider")) {
                $.data(this, "ionRangeSlider", new IonRangeSlider(this, options, plugin_count++));
            }
        });
    };
Run Code Online (Sandbox Code Playgroud)

据我在网上读到的,这是一个多个 jquery 冲突问题。

关于我的应用程序:我的项目通过 npm 安装了 jquery。所以 package.json 中存在一个 jquery。我还在我的index.jade 文件的脚本中包含了jquery。所以那里还有另一个。

这不是jquery放置在插件的js文件之后的问题。我将jquery放在index.jade文件脚本的顶部。

block head_scripts

         script(src='https://code.jquery.com/jquery-3.2.1.min.js') 
    script(src='/public/ion.rangeSlider.js')
    link(href='/public/normalize.css' rel="stylesheet")
    link(href='/public/ion.rangeSlider.css' rel="stylesheet")
    link(href='/public/ion.rangeSlider.skinFlat.css' rel='stylesheet')
Run Code Online (Sandbox Code Playgroud)

我也尝试过noConflict。但这也行不通。

var $ = jQuery.noConflict();

$( ".slider" ).ionRangeSlider();
Run Code Online (Sandbox Code Playgroud)

我尝试将 jquery 包含在我的 webpack config.js 文件中

new webpack.ProvidePlugin({
            React: 'react',
            $: 'jquery',
            jQuery: 'jquery'
        }),
Run Code Online (Sandbox Code Playgroud)

上面的方法没有任何效果。每次我都会遇到同样的错误。

我该如何解决这个问题?

Mal*_*bid 0

尝试将范围滑块的内部 url 更改为外部 url

<script src="http://ionden.com/a/plugins/ion.rangeSlider/static/js/ion-rangeSlider/ion.rangeSlider.js"></script>

<link rel="stylesheet" href="http://ionden.com/a/plugins/ion.rangeSlider/static/css/ion.rangeSlider.css" />
Run Code Online (Sandbox Code Playgroud)

然后执行 import Slider from 'react-rangeslider' 如果不使用 es6 转换器,则执行 var Slider = require('react-rangeslider')