javascript - Requirejs Jquery原型(prototype)继承

标签 javascript jquery inheritance requirejs

我正在尝试将 jquery 导入到我的原型(prototype)类中,该类最初在构造函数中工作。

在调用 resizeCanvas 事件时我失去了 jquery 的范围。它说 width() 和 height() 函数未定义。

有没有办法让我不会丢失 jquery 变量。

define(['jquery'], function($) {

    function Canvas() {
        this.canvas   = document.getElementById('canvas');
        this.context  = this.canvas.getContext('2d');
        this.rowbuild = $('#rowbuild');
    }

    Canvas.prototype.addResizeListener = function() {
        window.addEventListener('resize', this.resizeCanvas, false);
    };
    Canvas.prototype.resizeCanvas = function() {
        this.canvas.width  = this.rowbuild.width();
        this.canvas.height = this.rowbuild.height();
    };

    return Canvas;
});

最佳答案

您需要使用 bind$.proxy 将监听器绑定(bind)到正确的上下文对象。

window.addEventListener('resize', this.resizeCanvas.bind(this), false);

此外,如果您已经在使用 jQuery,为什么还要使用 addEventListener

关于javascript - Requirejs Jquery原型(prototype)继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24026259/

相关文章:

javascript - nvd3 chart.useInteractiveGuideline(true);没有正确更新

javascript - 为什么我的 Handlebars 没有编译方法?

javascript - 为什么不能在函数调用前使用前缀运算符?

javascript - 检查空字段刷新jquery?

jQuery unwrap 删除多个父级

c++ - 向上转型指针引用

java - 创建对象时的尴尬

c++ - 如何从 C++ 基类继承抽象行为

javascript - Laravel Vue.js - 包含 vue-router 的最简单方法?

jquery - 如何在 grails 2.0 中获取 JSON