setCapture()的问题

Tomoyo 2008-05-17 03:36:51
我在Javascript下做一个用鼠标移动层的小程序时
看到别人在onmousedown中加了一句
document.getElementById(obj).setCapture();
和onmouseup中加了一句
document.getElementById(obj).releaseCapture();
这两句代码我删除后程序依然可以运行,请问这两句是做什么用的?
...全文
207 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Navymk 2008-05-17
  • 打赏
  • 举报
回复
setCaptrue及release都是ie浏览器专有的

比如做一个拖拽效果
捕获事件一般都要涉及onmousedown,onmouseover等等
如果不setCapture的话
在获取并对象拖动的时候,如果鼠标离开了对象(比如速度过快的时候),就会触发别的对象onmouseout或者onmouseover事件,那么拖拽的对象就会丢失.

这个东西很好,致命的就是不跨浏览器.
Tomoyo 2008-05-17
  • 打赏
  • 举报
回复
什么意思测度用?
yinchuanshuxiu 2008-05-17
  • 打赏
  • 举报
回复
测试用
Tomoyo 2008-05-17
  • 打赏
  • 举报
回复
<script language="javascript">
var huc = ''
var imax = <%=t%>;
document.onmouseup = hue;
document.onmousemove = hus;
var X;
var Y;
function hum(Object, event)
{
huc = Object.id;
document.getElementById(huc).setCapture(); //'''''''''''''''''
X = event.x - document.getElementById(huc).style.pixelLeft;
Y = event.y - document.getElementById(huc).style.pixelTop;

document.getElementById(huc).style.zIndex = imax;
imax = imax + 1;
}
function hus()
{
if(huc!=''){
document.getElementById(huc).style.left = event.x - X;
document.getElementById(huc).style.top = event.y - Y;
}
}

function hue()
{

document.getElementById(huc).releaseCapture();
huc='';

}
function hud(d)
{
document.getElementById(d).style.visibility = 'hidden';
}
</script>
lenco124 2008-05-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 Tomoyo 的回复:]
就是能不能稍微说明白一点,这两句东西用了和没用的分别
[/Quote]

你把你认为没用的代码 发上来瞧瞧。。。
Tomoyo 2008-05-17
  • 打赏
  • 举报
回复
就是能不能稍微说明白一点,这两句东西用了和没用的分别
Tomoyo 2008-05-17
  • 打赏
  • 举报
回复
大哥,那到底有什么用?
lenco124 2008-05-17
  • 打赏
  • 举报
回复
var obj = document.getElementById(obj);
obj.srcElement;
or
obj.target;
lenco124 2008-05-17
  • 打赏
  • 举报
回复
document.getElementById(obj).setCapture();
document.getElementById(obj).releaseCapture();
俘获对象
释放对象

87,907

社区成员

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

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