使用io.js 1.3.0使用JSDOM 4.0.1与Mocha 2.0.1和Jquery 2.1.1在Windows
上以下代码:
var chai = require('chai');
var jsdom = require('jsdom');
describe('JSDOM', function () {
var $;
beforeEach(function () {
global.document = jsdom.jsdom('<html><body><section id="banner"></section></body></html>');
global.window = global.document.defaultView;
global.navigator = global.window.navigator;
$ = global.jQuery = require('jquery')(global.window);
})
it('Using jquery', function () {
var dom = $("#banner");
});
});
使用 typeError:对象尝试使用jQuery选择器作为函数(即$(...))时,对象不是函数。还有其他人遇到这一点并有解决方法吗?
问题是您设置了设置global.window
和global.document
。jQuery正在检查那些是否在浏览器中运行的人。
这会导致require('jquery')(global.window)
包装窗口而不是运行jQuery Factory功能,就像$(window)
一样。