首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Node.js中的Jquery错误“$不是函数”

Node.js中的Jquery错误“$不是函数”
EN

Stack Overflow用户
提问于 2019-03-01 08:21:17
回答 1查看 681关注 0票数 1

当使用Jquery和Jsdom时,我得到了控制台错误'$不是一个函数‘。我使用的是最新的Jquery版本3.3.1和Jsdom 13.2.0。我使用Browserify也是为了利用require。

main.js

代码语言:javascript
复制
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

代码语言:javascript
复制
<!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>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-01 08:52:37

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

代码语言:javascript
复制
var $ = jQuery = require('jquery');

你所写的就是重新定义$jQuery,就像你已经做的那样:

代码语言:javascript
复制
jQuery = require('jquery');
var $ = jQuery = jQuery(window);

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

代码语言:javascript
复制
var $, jQuery;
$ = jQuery = require('jquery');
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54936246

复制
相关文章

相似问题

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