当 Dojo 运行在支持 DOM Level2 事件模型的浏览器中时,Dojo 只是把事件处理委托给浏览器来完成。而在与 DOM Level2 的事件模型不兼容的浏览器(比如 IE)中,Dojo 会尽量使用浏览器的 API 模
当 Dojo 运行在支持 DOM Level2 事件模型的浏览器中时,Dojo 只是把事件处理委托给浏览器来完成。而在与 DOM Level2 的事件模型不兼容的浏览器(比如 IE)中,Dojo 会尽量使用浏览器的 API 模拟 DOM Level2 中的事件处理函数。 Dojo 最终提供给开发者一个称为“简单连接”的事件处理机制来处理 DOM 事件。
为什么叫“简单连接”呢,因为绑定事件处理函数的函数名叫 dojo.connect,相应的注销的函数是 dojo.disconnect 。
- dojo.connect = function(/*Object|null*/ obj, /*String*/ event, /*Object|null*/ context, /*String|Function*/ method, /*Boolean*/ dontFix)
参数 obj 事件源对象,比如 DOM 树中的某一节点; event 参数表示要连接的事件名,如果是 dojo.global(在浏览器中一般是 window 对象)域上的事件,则 obj 参数可以置为 null,或者不写。 context 指事件处理函数所在的域(比如一个对象); method 表示事件处理函数名,如果是全局函数,则 context 参数可置为 null,或者不写这个参数; dontFix 表示不需要处理浏览器兼容的问题,默认为 false ;如果你的应用只在支持 DOM Level2 事件模型的浏览器上运行,则可以把它设为 true,但是这种几率太小了,因为 IE 就不是完全支持 DOM Level2 事件模型。 dojo.connect 函数可以返回一个 handle,在 dojo.disconnect 中会用到。
- dojo.disconnect = function(/*Handle*/ handle)
dojo.disconnect 函数用来注销已注册的事件处理函数,参数是一个 dojo.connect 时返回的 handle 。