gpt4 book ai didi

javascript - 在类中使用 jQuery

转载 作者:行者123 更新时间:2023-11-30 07:46:45 25 4
gpt4 key购买 nike

我遇到了范围问题。

我有一个带有 mouseX 和 mouseY 属性的类。

我想像这样使用 jQuery 来设置它们:

// Store the mouse position at all times
$('#'+canvasId).mousemove( function(e) {
this.mouseX = e.pageX-this.offsetLeft;
this.mouseY = e.pageY-this.offsetTop;
});

工作正常,只有 this.mouseX 留在函数范围内。我已经使用 this 在类中隐式声明了 mouseX 和 mouseY。如果我不这样做,它们就会成为私有(private)变量,对吧?

最佳答案

我想你想要更像下面这样的东西:

// I usually put this at the top of my class declaration
var that = this;

// Store the mouse position at all times
$('#'+canvasId).mousemove( function(e) {
that.mouseX = e.pageX-this.offsetLeft;
that.mouseY = e.pageY-this.offsetTop;
});

由于 this 在事件处理程序中改变了含义,您需要保存对它的引用以备后用;这种已保存引用的常规名称是 that

关于javascript - 在类中使用 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4663739/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com