TransitionEvent.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. define("dojox/mobile/TransitionEvent", [
  2. "dojo/_base/declare",
  3. "dojo/_base/Deferred",
  4. "dojo/_base/lang",
  5. "dojo/on",
  6. "./transition"
  7. ], function(declare, Deferred, lang, on, transitDeferred){
  8. return declare("dojox.mobile.TransitionEvent", null, {
  9. constructor: function(target, transitionOptions, triggerEvent){
  10. this.transitionOptions=transitionOptions;
  11. this.target = target;
  12. this.triggerEvent=triggerEvent||null;
  13. },
  14. dispatch: function(){
  15. var opts = {bubbles:true, cancelable:true, detail: this.transitionOptions, triggerEvent: this.triggerEvent};
  16. //console.log("Target: ", this.target, " opts: ", opts);
  17. var evt = on.emit(this.target,"startTransition", opts);
  18. //console.log('evt: ', evt);
  19. if(evt){
  20. Deferred.when(transitDeferred, lang.hitch(this, function(transition){
  21. Deferred.when(transition.call(this, evt), lang.hitch(this, function(results){
  22. this.endTransition(results);
  23. }));
  24. }));
  25. }
  26. },
  27. endTransition: function(results){
  28. on.emit(this.target, "endTransition" , {detail: results.transitionOptions});
  29. }
  30. });
  31. });