event.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. define("dojo/_base/event", ["./kernel", "../on", "../has", "../dom-geometry"], function(dojo, on, has, dom){
  2. // module:
  3. // dojo/_base/event
  4. // summary:
  5. // This module defines dojo DOM event API.
  6. if(on._fixEvent){
  7. var fixEvent = on._fixEvent;
  8. on._fixEvent = function(evt, se){
  9. // add some additional normalization for back-compat, this isn't in on.js because it is somewhat more expensive
  10. evt = fixEvent(evt, se);
  11. if(evt){
  12. dom.normalizeEvent(evt);
  13. }
  14. return evt;
  15. };
  16. }
  17. dojo.fixEvent = function(/*Event*/ evt, /*DOMNode*/ sender){
  18. // summary:
  19. // normalizes properties on the event object including event
  20. // bubbling methods, keystroke normalization, and x/y positions
  21. // evt: Event
  22. // native event object
  23. // sender: DOMNode
  24. // node to treat as "currentTarget"
  25. if(on._fixEvent){
  26. return on._fixEvent(evt, sender);
  27. }
  28. return evt; // Event
  29. };
  30. dojo.stopEvent = function(/*Event*/ evt){
  31. // summary:
  32. // prevents propagation and clobbers the default action of the
  33. // passed event
  34. // evt: Event
  35. // The event object. If omitted, window.event is used on IE.
  36. if(has("dom-addeventlistener") || (evt && evt.preventDefault)){
  37. evt.preventDefault();
  38. evt.stopPropagation();
  39. }else{
  40. evt = evt || window.event;
  41. evt.cancelBubble = true;
  42. on._preventDefault.call(evt);
  43. }
  44. };
  45. return {
  46. fix: dojo.fixEvent,
  47. stop: dojo.stopEvent
  48. };
  49. });