Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 7307

Show
Ignore:
Timestamp:
08/11/07 19:07:21 (1 year ago)
Author:
sam
Message:

prototype: Make sure Element#stopObserving is always chainable.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • spinoffs/prototype/trunk/CHANGELOG

    r7306 r7307  
    11*SVN* 
     2 
     3* Make sure Element#stopObserving is always chainable.  [sam] 
    24 
    35* Event.fire/Element#fire now returns the newly-fired event instead of the event's target element.  [sam] 
  • spinoffs/prototype/trunk/src/event.js

    r7306 r7307  
    187187       
    188188      if (!handler && eventName) { 
    189         return getWrappersForEventName(id, eventName).each(function(wrapper) { 
     189        getWrappersForEventName(id, eventName).each(function(wrapper) { 
    190190          element.stopObserving(eventName, wrapper.handler); 
    191         }) && false; 
     191        }); 
     192        return element; 
    192193         
    193194      } else if (!eventName) { 
    194         return Object.keys(getCacheForID(id)).each(function(eventName) { 
     195        Object.keys(getCacheForID(id)).each(function(eventName) { 
    195196          element.stopObserving(eventName); 
    196         }) && false; 
     197        }); 
     198        return element; 
    197199      } 
    198200       
    199201      var wrapper = findWrapper(id, eventName, handler); 
    200       if (!wrapper) return false
     202      if (!wrapper) return element
    201203       
    202204      if (element.removeEventListener) { 
  • spinoffs/prototype/trunk/test/unit/event.html

    r7306 r7307  
    184184    }}, 
    185185     
     186    testStopObservingIsChainable: function() { with(this) { 
     187      var span = $("span"), observer = function() { }; 
     188      span.observe("somethingHappened", observer); 
     189      assertEqual(span, span.stopObserving("somethingHappened", observer)); 
     190      span.observe("somethingHappened", observer); 
     191      assertEqual(span, span.stopObserving("somethingHappened")); 
     192      span.observe("somethingHappened", observer); 
     193      assertEqual(span, span.stopObserving()); 
     194      assertEqual(span, span.stopObserving()); // assert it again, after there are no observers 
     195    }}, 
     196     
    186197    testDocumentContentLoadedEventFiresBeforeWindowLoad: function() { with(this) { 
    187198      assert(eventResults.contentLoaded, "contentLoaded");