javascript - Node.js 中的 Jquery 错误“$ 不是函数”
问题描述
将 Jquery 与 Jsdom 一起使用时,我收到控制台错误“$ 不是函数”。我正在使用最新的 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.
});
});
索引.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)
after require('jquery')
,所以它应该是:
var $ = jQuery = require('jquery');
你写的是重新定义$
,jQuery
好像你已经完成了:
jQuery = require('jquery');
var $ = jQuery = jQuery(window);
顺便说一句,您不能通过这样的链接来声明两个变量assignments
。只有第一个变量是在本地声明的,第二个是没有声明的赋值。如果要声明两个变量并赋予它们相同的值,请分两步进行:
var $, jQuery;
$ = jQuery = require('jquery');
推荐阅读
- bash - bash shell 的 ANSI-C 引用中的“\E”转义是什么?
- wcf - WCF REST 格式输出
- postgresql - 如何确保使用 ef core 和 postgres 释放锁?
- sql - 如何让我的 DataNavigator 在新行 INSERT 后计算新行数?
- ios - 是否有人在 TestFlight env 或生产环境中成功向您的用户发布了 ios AppClip?
- python-3.x - 使用 PIL、matplotlib 用给定的 RGBA 值标记图像中的一个点
- sql - Oracle 数据透视转换到 SQL 服务器
- linux - Linux 终端:创建目录和子目录命令
- spring - Mongo Spring @Document 注释
- python - Python子进程似乎不起作用