将browserify与 Backbone.js 和jquery一起使用时出错

mbskvtky  于 2022-11-10  发布在  jQuery
关注(0)|答案(2)|浏览(183)

这是我写的:

var underscore = require('underscore');
var $ = require('jquery')(window);
var Backbone = require('backbone');
Backbone.$ = $;

然后执行此命令browserify app.js -o bundle.js
当我运行应用程序时,我在chrome控制台中得到以下错误:
应用程序代码:

//Define The Model

    $(function () {
        var Shape = Backbone.Model.extend({
            defaults: {x: 40, y: 40, width: 100, height: 100, color: 'brown'},
            setTopLeft: function (x, y) {
                this.set({x: x, y: y});
            },
            setDim: function (w, h) {
                this.set({width: w, height: h});
            },
            isCircle: function () {
                return !!this.get('circle');
            }
        });
      });

**错误:**未捕获的引用错误:$未定义

u0njafvf

u0njafvf1#

虽然不是100%肯定,但我认为这是一个shim问题,您没有正确地向应用程序公开$

hi3rlvi2

hi3rlvi22#

您需要做的就是删除require jquery中的(window)

var $ = require('jquery');

实际上,使用var $ = require('jquery')(window)创建一个包含window对象的jquery对象,就像你在做下面这样的事情:var $win = $(window)。那么$win变量将是用jquery Package 的窗口全局对象,这在某些情况下实际上是有用的。

  • 感谢斯派克首先注意到了评论中的错误,但我已经测试过了,并将其作为答案发布。*

相关问题