dojo.event_事件处理.doc_第1页
dojo.event_事件处理.doc_第2页
dojo.event_事件处理.doc_第3页
dojo.event_事件处理.doc_第4页
dojo.event_事件处理.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

dojo.event.connect绑定指定的方法到指定的对象的方法上Usage Example:简单绑定1function doOnClick1()alert(Clicked!);dojo.event.connect(dojo.byId(inputTest),onclick,doOnClick1);简单绑定2obj = doOnClick2: function() alert(Clicked!);dojo.event.connect(dojo.byId(inputTest),onclick,obj,doOnClick2);如果存在需要进行多个事件的绑定的时候,你就会看到dojo的方便之处了obj2 = doOnClick2: function()alert(Clicked!);dojo.event.connect(dojo.byId(inputTest),onclick,obj,doOnClick2);dojo.event.connect(dojo.byId(inputTest),onclick,obj2,doOnClick2);connect可以对任何对象的方法进行绑定,而不是只能针对DOM对象dojo.event.connect(obj,doOnclick2,doOnClick1); /在调用obj.doOnclick2()后调用doOnClick1()dojo.event.connectBeforedojo.event.connect默认是后绑定,connectBefore则是早绑定,绑定的方法将在指定方法前执行,用法与connect一致dojo.event.connectAroundUsage Example:function aroundTest(invocation) /此处可以增加代码,比如检查参数(invocation.args) var result = ceed(); /此处可以增加代码,比如修改结果(result) return result;dojo.event.connectAround(dojo.byId(inputTest),onclick,aroundTest);dojo.event.connectOnce说起这个函数,还真的是让我想了半天,直觉上我就把它想象成executeOnce,结果测试的结果让我差点想不通connectOnce就是指保证只绑定一次,来避免重复绑定会导致的重复执行的问题dojo.event.disconnect解除绑定,调用参数与connect一致,即可解除之前的绑定操作dojo.event.log在执行指定对象的指定方法后自动记录日志Usage Example:dojo.event.log(obj, doOnClick);/当调用obj.doOnClick时记录下日志DEBUG: (object Object).doOnClick : 你也可以这样写:dojo.event.log(srcObj: obj, srcFunc: doOnClick);dojo.event.kwConnectkwConnect可以做到更加灵活的绑定,比如可以设置延迟执行绑定Usage Example:dojo.event.kwConnect( srcObj: dojo.byId(inputTest), srcFunc: onclick, adviceObj: obj, adviceFunc: doOnclick2, type: before, /默认为after,可选: before, around,注意:type是用来决定adviceFunc的行为的,如果为around,则aroundFunc将失效 aroundObj: null, aroundFunc: null, /如果指定了aroundFunc,则其将对adviceFunc进行拦截,但是当type为around时,则aroundFunc将不会执行 once: false, /默认为false,允许重复绑定 delay: 3000, /延时3秒后执行adviceFunc rate: 0, /这个从源代码没有看懂起什么作用 adviceMsg: false /这个从源代码没有看懂起什么作用);dojo.event.kwDisconnect用来解除使用kwConnect指定的绑定模块:dojo.event.topicTopic机制与Advice机制都能够实现事件的绑定,但是显然,Topic更适合处理多重绑定。发布主题,然后由用户订阅的机制就是一个典型的观察者模式dojo.event.topic.registerPublisher注册主题发布器Usage Example:dojo.event.topic.registerPublisher(myTopic, obj, doOnClick2);dojo.event.topic.subscribe订阅主题Usage Example:dojo.event.topic.subscribe(myTopic, test); /执行obj.doOnClick2()以后会自动执行test()dojo.event.topic.unsubscribe取消订阅主题Usage Example:dojo.event.topic.unsubscribe(myTopic, test);dojo.event.topic.destroy删除主题,此主题所有的订阅都将失效Usage Example:dojo.event.topic.destroy(myTopic);模块:dojo.event.browserdojo.event.browser.addListener增加监听器Usage Example:function listener() alert(ok);dojo.event.browser.addListener(document, mousedown, listener); /事件名称可以加上on,也可以没有ondojo.event.browser.addListener(document, onmousedown, listener, true); /capture为真表示不受上层元素的事件控制dojo.event.browser.removeListener清除监听器(这个方法似乎是无效的)dojo.event.browser.callListener调用监听器Usage Example:dojo.event.browser.callListener(listener, document);dojo.event.browser.stopPropagation阻止Event传播Usage Example:dojo.event.browser.stopPropagation();dojo.event.browser.preventDefault将当前事件的返回值设置为falseUsage Example:dojo.event.browser.preventDefault();dojo.event.browser.keys键定义:KEY_BACKSPACE: 8,KEY_TAB: 9,KEY_ENTER: 13,KEY_SHIFT: 16,KEY_CTRL: 17,KEY_ALT: 18,KEY_PAUSE: 19,KEY_CAPS_LOCK: 20,KEY_ESCAPE: 27,KEY_SPACE: 32,KEY_PAGE_UP: 33,KEY_PAGE_DOWN: 34,KEY_END: 35,KEY_HOME: 36,KEY_LEFT_ARROW: 37,KEY_UP_ARROW: 38,KEY_RIGHT_ARROW: 39,KEY_DOWN_ARROW: 40,KEY_INSERT: 45,KEY_DELETE: 46,KEY_LEFT_WINDOW: 91,KEY_RIGHT_WINDOW: 92,KEY_SELECT: 93,KEY_F1: 112,KEY_F2: 113,KEY_F3: 114,KEY_F4: 115,KEY_F5: 116,KEY_F6: 117,KEY_F7: 118,KEY_F8: 119,KEY_F9: 120,KEY_F10: 121,KEY_F11: 122,KEY_F12: 123,KEY_NUM_LOCK: 144,KEY_SCROLL_LOCK: 145dojo.event.browser.currentEvent最近一次的Event,其属性包括:altKey/检查alt键的状态,当alt键按下时,值为 truebutton/检查按下的鼠标键,0 没按键,1 按左键,2 按右键,3 按左右键,4 按中间键,5 按左键和中间键,6 按右键和中间键,7 按所有的键/这个属性仅用于onmousedown, onmouseup, 和 onmousemove 事件。对其他事件,不管鼠标状态如何,都返回 0(比如onclick)clientX/返回鼠标在窗口客户区域中的X坐标clientY/返回鼠标在窗口客户区域中的Y坐标ctrlKey/检查ctrl键的状态,当ctrl键按下时,值为 true fromElement/检测 onmouseover 和 onmouseout 事件发生时,鼠标所离开的元素keyCode/检测键盘事件相对应的内码,仅当type为keydown,keyup,keypress时才有效offsetX/检查相对于触发事件的对象,鼠标位置的水平坐标offsetY/检查相对于触发事件的对象,鼠标位置的垂直坐标propertyName/设置或返回元素的变化了的属性的名称,你可以通过使用 onpropertychange 事件,得到 propertyName 的值screenX/检测鼠标相对于用户屏幕的水平位置screenY/检测鼠标相对于用户屏幕的垂直位置shiftKey/检查shift键的状态,当shift键按下时,值为truesrcElement/返回触发事件的元素srcFilter/返回触发 onfilterchange 事件的滤镜toElement/检测 onmouseover 和 onmouseout 事件发生时,鼠标所进入的元素type/返回没有“on”作为前缀的事件名,比如click, mousedownx/返回鼠标相对于css属性中有position属性的上级元素的x轴坐标。如果没有css属性中有position属性的上级元素,默认以BODY元素作为参考对象y/返回鼠标相对于css属性中有position属性的上级元素的y轴坐标。如果没有css属性中有position属性的上级元素,默认以BODY元素作为参考对象target/同srcElementcurrentTargetlayerX/同offsetXlayerY/同offsetYpageX/无水平滚动条的情况下与clientX同pageY/无水平滚动条的情况下与clientY同relatedTarget/ 仅当type为mouseover,mouseout时才有效keys/与dojo.eve

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论