【问题标题】:Uncaught TypeError: $ is not a function ( requirejs define method)Uncaught TypeError: $ is not a function ( requirejs 定义方法)
【发布时间】:2018-01-27 10:33:20
【问题描述】:

在我的小部件中包含来自https://datatables.net/manual/installation#Local-installation 的数据表插件时遇到了一些困难。

在 jquery.datatables.js 中有一个函数应该将 jquery 分配给变量 $

if ( typeof define === 'function' && define.amd ) {
        // AMD
        alert('AMD');
        define( ['assets/js/jquery/jquery-3.2.1'], function ( $ ) {
        alert('Common1');
        alert( $ );
        return factory( $, window, document );
    } );

但是,我的警报 ( $ ) 显示 $ 未定义,它应该是 JQuery 的函数构造函数

无论如何,在 jquery.datatables.min 的后续函数中有一个 main 函数接受:

(function( $, window, document, undefined ) 

在这个函数中,第一次使用 $ 是我得到的 未捕获的 TypeError:$ 不是函数

为什么会出现这个错误,是因为我对 jquery 的定义导致了这个问题吗?

即使我这样做:

var $ = require define( ['assets/js/jquery/jquery-3.2.1'])

就在main函数之前,还是没有得到全局中的$.fn.datatables函数?

我知道这个问题有点混乱,但我希望有人能给我指点,从哪里开始寻找如何解决这个问题。

【问题讨论】:

    标签: javascript dojo require amd


    【解决方案1】:

    尝试在头部直接从 CDN 加载 jquery,不要尝试使用 AMD 加载。

    确保 jquery 是第一个加载到 header 中的库,例如:

    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
     <!-- other scripts below -->
    </head>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-15
      • 2021-12-16
      • 2018-04-20
      • 2017-04-13
      • 2015-01-14
      • 2014-07-06
      • 2014-09-01
      相关资源
      最近更新 更多