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

Changeset 8037

Show
Ignore:
Timestamp:
10/26/07 19:15:35 (11 months ago)
Author:
andrew
Message:

Add event.stopped, a boolean that is set to when Event#stop is called.

Files:

Legend:

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

    r7994 r8037  
    8383    stop: function(event) { 
    8484      Event.extend(event); 
    85       event.preventDefault();  
    86       event.stopPropagation();  
     85      event.preventDefault(); 
     86      event.stopPropagation(); 
     87      event.stopped = true; 
    8788    } 
    8889  }; 
  • spinoffs/prototype/trunk/test/unit/event.html

    r7835 r8037  
    209209      assert(eventResults.windowLoad.endOfDocument, "windowLoad.endOfDocument"); 
    210210      assert(eventResults.windowLoad.contentLoaded, "windowLoad.contentLoaded"); 
     211    }}, 
     212     
     213    testEventStopped: function() { with(this) { 
     214      var span = $("span"), event; 
     215 
     216      span.observe("test:somethingHappened", function() { }); 
     217      event = span.fire("test:somethingHappened"); 
     218      assert(!event.stopped, "event.stopped should be false with an empty observer"); 
     219      span.stopObserving("test:somethingHappened"); 
     220       
     221      span.observe("test:somethingHappened", function(e) { e.stop() }); 
     222      event = span.fire("test:somethingHappened"); 
     223      assert(event.stopped, "event.stopped should be true for an observer that calls stop"); 
     224      span.stopObserving("test:somethingHappened"); 
    211225    }} 
     226     
    212227     
    213228  }, 'testlog');