Javascript 当我将event.clientY放入setInterval循环时,它是未定义的
我正在制作一个脚本来移动页面上的一个元素,我需要在鼠标移动时将其放入一个循环中,否则无法停止它。但当我出于某种原因将它放入Javascript 当我将event.clientY放入setInterval循环时,它是未定义的,javascript,jquery,Javascript,Jquery,我正在制作一个脚本来移动页面上的一个元素,我需要在鼠标移动时将其放入一个循环中,否则无法停止它。但当我出于某种原因将它放入setInterval循环时,我得到了这个错误“uncaughttypeerror:cannotreadproperty'clientY'ofundefined”。我不知道为什么会这样。有人能解释一下情况吗 $(document).on('mousedown', '#moveMe', function(){ $(document).on('mousemove', '#
setInterval
循环时,我得到了这个错误“uncaughttypeerror:cannotreadproperty'clientY'ofundefined”。我不知道为什么会这样。有人能解释一下情况吗
$(document).on('mousedown', '#moveMe', function(){
$(document).on('mousemove', '#moveMe', function(){
var inLoop = setInterval(function(){
var y = event.clientY;
var x = event.clientX;
$('#moveMe').css('left', parseInt(x)+"px");
$('#moveMe').css('top', parseInt(y)+"px");
}, 1);
$(document).on('mouseup', 'body', function(){
clearInterval(inLoop);
});
});
});
您需要将事件传递给事件处理程序
$(document).on('mousedown', '#moveMe', function(){
$(document).on('mousemove', '#moveMe', function(event){
var inLoop = setInterval(function(){
var y = event.clientY;
var x = event.clientX;
$('#moveMe').css('left', parseInt(x)+"px");
$('#moveMe').css('top', parseInt(y)+"px");
}, 1);
$(document).on('mouseup', 'body', function(){
clearInterval(inLoop);
});
});
});
错误是“clientY未定义”?您确定这不是“无法读取未定义的属性clientY”之类的吗?未捕获类型错误:无法读取未定义
窗口的属性“clientY”。事件完成触发后,事件将变为未定义。尝试更改为$(文档).on('mousemove','#moveMe',函数(事件){
您是否意识到您将启动数百个间隔?当您为每次鼠标移动启动一个新的间隔时,在屏幕上移动一个元素将导致每次元素移动一个像素时启动一个新的间隔。拖动一个元素几秒钟,然后观察浏览器停止或崩溃。使事件变为无效al将解决megawac提到的问题,而不是依赖全局事件。