以下是我开始写的代码,但是在拖动快的时候无效 $(function()
{
$("#div1").mousedown(function(event)
{
var offset = $(this).offset();
_x = event.clientX - offset.left;
_y = event.clientY - offset.top;
$(this).bind("mousemove", function(event)
{
$("#x").html(event.clientX);
$("#y").html(event.clientY);
_xx = event.clientX - _x;
_yy = event.clientY - _y;
$(this).css({ left: _xx + "px", top: _yy + "px" });
}).mouseup(function(event)
{
$(this).unbind('mousemove').unbind('mouseup');
});
});
}); 以下是经过Click_Me提示说要绑定在document上的代码,可以实现我要的需求 $(function()
{
$("#div1").mousedown(function(event)
{
var offset = $(this).offset();
_x = event.clientX - offset.left;
_y = event.clientY - offset.top;
$(document).bind("mousemove", function(event)
{
$("#x").html(event.clientX);
$("#y").html(event.clientY);
_xx = event.clientX - _x;
_yy = event.clientY - _y;
$("#div1").css({ left: _xx + "px", top: _yy + "px" });
}).mouseup(function(event)
{
$(this).unbind('mousemove').unbind('mouseup');
});
});
}); 但是为什么这里要绑定在document呢?按我理解应该是绑定在div1上面啊谢谢
{
$("#div1").mousedown(function(event)
{
var offset = $(this).offset();
_x = event.clientX - offset.left;
_y = event.clientY - offset.top;
$(this).bind("mousemove", function(event)
{
$("#x").html(event.clientX);
$("#y").html(event.clientY);
_xx = event.clientX - _x;
_yy = event.clientY - _y;
$(this).css({ left: _xx + "px", top: _yy + "px" });
}).mouseup(function(event)
{
$(this).unbind('mousemove').unbind('mouseup');
});
});
}); 以下是经过Click_Me提示说要绑定在document上的代码,可以实现我要的需求 $(function()
{
$("#div1").mousedown(function(event)
{
var offset = $(this).offset();
_x = event.clientX - offset.left;
_y = event.clientY - offset.top;
$(document).bind("mousemove", function(event)
{
$("#x").html(event.clientX);
$("#y").html(event.clientY);
_xx = event.clientX - _x;
_yy = event.clientY - _y;
$("#div1").css({ left: _xx + "px", top: _yy + "px" });
}).mouseup(function(event)
{
$(this).unbind('mousemove').unbind('mouseup');
});
});
}); 但是为什么这里要绑定在document呢?按我理解应该是绑定在div1上面啊谢谢
这个很容易想明白啊
拖动的原理 就是当你鼠标移动的时候 DIV跟着鼠标跑
所以在整个文档范围内 你鼠标移动到哪 DIV通过计算后 就跟着跑到哪就对了.你如果把mousemove放到div的时候 你鼠标慢点不脱离DIV可以
但你迅速移开 鼠标直接就指向文档document了 当然div.onmouseover就没被触发了..