Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source
Show
Ignore:
Timestamp:
07/26/07 12:55:12 (1 year ago)
Author:
seth
Message:

Added Event.Methods.create and Event.Methods.dispatch to the events branch. They normalize the creation and sending of custom events in the big3 browsers.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • spinoffs/prototype/branches/event/src/event.js

    r7063 r7242  
    5555    var element = Event.element(event); 
    5656    return element.match(expression) ? element : element.up(expression); 
     57  }, 
     58   
     59  create: function(data, bubbles, cancelable, element) { 
     60    var event; 
     61     
     62    if (document.createEvent) {  // gecko, safari 
     63      bubbles = bubbles || false; 
     64      cancelable = cancelable || false; 
     65       
     66      if (Prototype.Browser.WebKit) { 
     67        event = document.createEvent('HTMLEvents'); 
     68        event.initEvent('click', bubbles, cancelable); 
     69      } 
     70      else {  // gecko uses MouseEvents 
     71        event = document.createEvent('MouseEvents'); 
     72        event.initMouseEvent 
     73          ('click', bubbles, cancelable, window, 
     74            0, 0, 0, 0, 0, false, false, false, false, 0, null); 
     75      } 
     76    } 
     77    else {  // msie 
     78      event = document.createEventObject(); 
     79      event.eventType = 'onclick'; 
     80    } 
     81     
     82    event.eventData = data; 
     83    if (element) Event.dispatch(element, event);     
     84    return event; 
     85  }, 
     86   
     87  dispatch: function(element, event) { 
     88    if (document.createEvent)  
     89      return element.dispatchEvent(event); 
     90    return element.fireEvent(event.eventType || 'onclick', event); 
    5791  } 
    5892};