|zyciis| 为什么DIV拖动的时候mousemove要绑定document上,而不是他的当前对像呢?谢谢 有代码

Zyciis196 2009-12-06 07:19:37
以下是我开始写的代码,但是在拖动快的时候无效

$(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上面啊

谢谢
...全文
217 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
quanquanfly 2011-08-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 click_me 的回复:]
JScript code

这个很容易想明白啊
拖动的原理 就是当你鼠标移动的时候 DIV跟着鼠标跑
所以在整个文档范围内 你鼠标移动到哪 DIV通过计算后 就跟着跑到哪就对了.

你如果把mousemove放到div的时候 你鼠标慢点不脱离DIV可以
但你迅速移开 鼠标直接就指向文档document了 当然div.onmouseover就没被触发了..
[/Quote]学习了~~
liang_A 2009-12-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 click_me 的回复:]
JScript code
这个很容易想明白啊
拖动的原理 就是当你鼠标移动的时候 DIV跟着鼠标跑
所以在整个文档范围内 你鼠标移动到哪 DIV通过计算后 就跟着跑到哪就对了.

你如果把mousemove放到div的时候 你鼠标慢点不脱离DIV可以
但你迅速移开 鼠标直接就指向文档document了 当然div.onmouseover就没被触发了..
[/Quote]
有理
Click_Me 2009-12-06
  • 打赏
  • 举报
回复

这个很容易想明白啊
拖动的原理 就是当你鼠标移动的时候 DIV跟着鼠标跑
所以在整个文档范围内 你鼠标移动到哪 DIV通过计算后 就跟着跑到哪就对了.

你如果把mousemove放到div的时候 你鼠标慢点不脱离DIV可以
但你迅速移开 鼠标直接就指向文档document了 当然div.onmouseover就没被触发了..

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧