Node.js中的Jquery错误'$不是函数'

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (174)

当Jquery与Jsdom一起使用时,我收到控制台错误'$ is is a function'。我使用的是最新的Jquery版本3.3.1和Jsdom 13.2.0。我也在使用Browserify来使用require。

main.js

var jsdom = require('jsdom');
const { JSDOM } = jsdom;
const { window } = new JSDOM();
const { document } = (new JSDOM('')).window;
global.document = document;

var $ = jQuery = require('jquery')(window);

$("body").click(function() {
  $("#name-tag").fadeOut("slow", function() {
    // Animation complete.
  });
});

index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta
      name="viewport"
      content="width=device-width, initial-scale = 1.0, maximum-scale=1.0, user-scalable=no"
    />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <link rel="stylesheet" href="scss/styles.css" />
    <script src="js/bundle.js"></script>
  </head>
  <body>
    <div id="name-tag">
    <h1>Hello World</h1>
    </div>
  </body>
</html>
提问于
用户回答回答于

摆脱(window)之后require('jquery'),所以它应该是:

var $ = jQuery = require('jquery');

你所写的是重新定义$jQuery就好像你已经完成了:

jQuery = require('jquery');
var $ = jQuery = jQuery(window);

顺便说一下,你不能通过这样的链接来声明两个变量assignments。只有第一个变量在本地声明,第二个变量是没有声明的赋值。如果要声明两个变量并为它们指定相同的值,请分两步执行:

var $, jQuery;
$ = jQuery = require('jquery');

扫码关注云+社区

领取腾讯云代金券