JavaScript绑定和回调
我试图计算鼠标的瞬时速度 为此,我创建了JavaScript绑定和回调,javascript,callback,bind,Javascript,Callback,Bind,我试图计算鼠标的瞬时速度 为此,我创建了x1=e.pageX来存储起始坐标,并创建了t1=newdate()…来获取起始时间。然后,我想在鼠标停止移动100 m/s后进行回调,并计算新的pageX和t2。。。这是我可以得到给定时间间隔的斜率x2-x1/t2-t1 问题:调用回调时,我试图使用bind将事件e(mousemove(函数(e))的上下文绑定到回调。我这样做是否有误 var mY = 0, mX = 0, slope =
x1=e.pageX
来存储起始坐标,并创建了t1=newdate()…
来获取起始时间。然后,我想在鼠标停止移动100 m/s后进行回调,并计算新的pageX
和t2
。。。这是我可以得到给定时间间隔的斜率<代码>x2-x1/t2-t1
问题:调用回调时,我试图使用bind
将事件e
(mousemove(函数(e)
)的上下文绑定到回调。我这样做是否有误
var mY = 0,
mX = 0,
slope = 0,
vel = 0,
thread;
$(document).ready(function(){
$(".box").mousemove(function(e) {
getDirection(e);
var x1 = e.pageX,
t1 = new Date().getTime();
clearTimeout(thread);
thread = setTimeout(callback.bind(this), 100);
});
});
function callback(e) {
var x2 = e.pageX,
t2 = new Date().getTime(),
xDist = x2 - x1,
time = t2 - t1;
log(x2 + ", " + x1);
slope = xDist/time;
log("mouse has stopped");
}
我做得不对吗
var mY = 0,
mX = 0,
slope = 0,
vel = 0,
thread;
$(document).ready(function(){
$(".box").mousemove(function(e) {
getDirection(e);
var x1 = e.pageX,
t1 = new Date().getTime();
clearTimeout(thread);
thread = setTimeout(callback.bind(this), 100);
});
});
function callback(e) {
var x2 = e.pageX,
t2 = new Date().getTime(),
xDist = x2 - x1,
time = t2 - t1;
log(x2 + ", " + x1);
slope = xDist/time;
log("mouse has stopped");
}
是的,您从未将e
传递给回调。看起来您想要
callback.bind(this, e)
在事件处理程序中,此
引用处理程序绑定到的DOM元素,而不是事件