node package manager
Stop writing boring code. Discover, share, and reuse within your team. Create a free org »



Build Status npm install npm version License

simple streaming DOM event delegation


var events = require('dom-delegation-stream')
var values = require('dom-value-stream')
events(document.body, 'input', 'input[type=text]')


events(element, eventName[, selector, options]) -> ReadableStream

  • if selector is provided, delegation will be used, otherwise it will not.
  • valid options are:
    • preventDefault <boolean>: will call preventDefault() on all matched events. Defaults to false.
    • stopPropagation <boolean>: will call stopPropagation() on all matched events. Defaults to false.
    • useCapture <boolean>: will initiate capture for matched events. Defaults to false.


  • when using delegation, the element that matches your selector will be available as event.delegationTarget.
  • calling .end() or otherwise ending the stream returned by dom-delegation-stream will remove the listeners added for event handling.
  • there are some alternative options for event handling on npm, a couple that even support delegation, and even some that are streaming. this module was created as an effort to provide a better balance of simplicity and flexibility.