js相關事件總結

一.常見的實現事件的方式html

   (1)html 中 onclick 屬性 ;如<button  onclick ="test()">jquery

   (2)js 中 onclick事件,如 document.getElementById("id").onclick=function(){};瀏覽器

   (3)W3C標準的addEventListener/removeEventListener,如document.getElementById("id").addEventListener("click",test,false); false 爲事件捕獲,true爲事件冒泡;框架

   (4)微軟attachEvent/detachEvent,如document.getElementById("id").attatchEvent("onclick",test);代理

推薦使用addEventListener,兼容性好,功能強大,代碼結構清晰code

 

二.事件流:事件的執行順序,包括 冒泡,目標,捕獲;htm

 

三.jquery 事件綁定方式對象

   (1)bind 匹配元素綁定,無過濾   浪費資源事件

   (2)live 匹配元素綁定,後繼添加的新元素也如此,適用於將來元素  已經被淘汰內存

   (3)deleget 匹配元素綁定, 有過濾,適用於將來元素 來處理動態添加的元素

   (4)on  實現了上面的功能,適用於將來元素 (推薦)

四.dojo事件綁定方式dojo/on:dojo從新實現了瀏覽器的信息發佈與接收機制,統一了事件的綁定方式,充分考慮到了內存泄漏,兼容性等問題

 (1)on(button,"click".test);支持w3c的對象屬性和方法,例如stopPropagation,preventDefault,_handle_.remove

   (2)on方法,如query(’.clickable‘).on("click",test)

   (3)事件代理:子元素的事件能夠經過父元素來響應執行;on(parent element, "selector:event name",handler). 如on(parrentDom,'.clickable:click',test)

   (4)自定義事件(pub/sub框架):pub發佈topic和參數,sub監聽topic和接收參數,如topic.publish('alert','hello');topic.subscribe('alert',fucntion(text){}); 應用:當前事件解決了不了的它來作

   (5)connect是舊方法

五.arcgis事件

 (1)on方法,如map.on('load',test)

   (2)connect,如connect.connect(map,'click',test)

對比:on比較好,一是connect是dojo舊方法,要淘汰;二是,on方法代碼簡潔,與其它語言的綁定事件方式相近;三是,on方法能夠得到evt.target,這個對象信息是可信有用的

  (3)事件冒泡與阻止,如event.stop(event);

相關文章
相關標籤/搜索