我正在尝试将 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/