Javascript 事件捕获的备忘(setCapture,captureEvents)

2016-02-19 12:24 96 1 收藏

岁数大了,QQ也不闪了,微信也不响了,电话也不来了,但是图老师依旧坚持为大家推荐最精彩的内容,下面为大家精心准备的Javascript 事件捕获的备忘(setCapture,captureEvents),希望大家看完后能赶快学习起来。

【 tulaoshi.com - Web开发 】

这段时间一直在给QZone研究Js拖放的问题。今天突然发现live.com的模块拖放居然可以跨出浏览器。到底是什么方法让 mousemove 和 mouseup 事件可以到浏览器外也可以触发,于是把整个live的js down下来分析,结果发现是一个小小的函数在做"怪" 。

  object.setCapture() 当一个object的被 setCapture 后,他的方法将会被继承到整个文档进行捕获。
  当不需要把方法继承到整个文档捕获时,要用 object.releaseCapture()

   Mozilla 也有类似的功能,方法稍微不同 
  window.captureEvents(Event.eventType) 
   window.releaseEvents(Event.eventType)

Event 是Mozilla特殊的一个object. 
eventType 包括: Abort, Blur, Click, Change, DblClick, DragDrop, Error, Focus, KeyDown, KeyPress, KeyUp, Load, MouseDown
以下例子偷懒一下,不做Mozilla的兼容,只是为了演示


相关联接:
For IE
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/methods/setcapture.asp
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/methods/releasecapture.asp

For Mozilla
http://developer.mozilla.org/en/docs/DOM:window.captureEvents
http://developer.mozilla.org/en/docs/DOM:window.releaseEvents

来源:https://www.tulaoshi.com/n/20160219/1600829.html

延伸阅读
标签: Web开发
事件处理概述  事件处理是对象化编程的一个很重要的环节,没有了事件处理,程序就会变得很死,缺乏灵活性。事件处理的过程可以这样表示:发生事件 - 启动事件处理程序 - 事件处理程序作出反应。其中,要使事件处理程序能够启动,必须先告诉对象,如果发生了什么事情,要启动什么处理程序,否则这个流程就不能进行...
标签: Web开发
每个JavaScript框架都实现跨浏览器的事件处理,鼓励你摆脱旧式的内联附加事件而使用精简的线性方法。看看清单6的jQuery例子,使用hover事件高亮显示div元素。 清单6:使用jQuery附加hover事件 $('#the-box').hover(function() {    $(this).addClass('highlight'); }, function() {    $(this).removeClass('highli...
标签: Web开发
click() 对象.click() 使对象被点击。  closed 对象.closed 对象窗口是否已关闭true/false  clearTimeout(对象) 清除已设置的setTimeout对象  clearInterval(对象) 清除已设置的setInterval对象  confirm("提示信息") 弹出确认框,确定返回true取消返回false  cursor:样式 更改鼠标样式 hand crossh...
标签: Web开发
问题:有一个列表,每一个条目都是这篇文章的部分内容,类似这样: 123456789101112  div class="list" div class ="item"第一篇文章/div div class ="item"第二篇文章/div...../div 而且在每个条目的div的右上角都有一个评论链接,点击就会展开所有的评论,并且显示评论框,这个链接...
标签: Web开发
我们用Select的onchange事件时,常会遇到这样一个问题,那就是连续选相同一项时,不触发onchange事件.select的onchange事件就是这样子的.你得有Change(改变),才能触发该事件... 掌握了它的特性后,相应的解决办法也很简单. select name=sel onchange="bao(this.options[this.options.selectedIndex].value)" option value=""请选择 opt...

经验教程

756

收藏

65
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部