我正在创建一个用于在页面上移动元素的脚本,我需要将它放在循环中,同时鼠标向下并且正在移动,否则就无法阻止它。但是一旦我把它放在setInterval
循环中由于某种原因我得到这个错误'未捕获的TypeError:无法读取属性'clientY'的undefined'。我不知道为什么会这样。有人对这种情况有所了解吗?
$(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);
});
});
});
答案 0 :(得分:2)
您需要将事件传递给事件处理程序
$(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);
});
});
});