UNPKG

arrive

Version:

arrive.js provides events to watch for DOM elements creation and removal. It makes use of Mutation Observers internally.

63 lines (45 loc) 2 kB
# arrive.js A lightweight JavaScript library (v2.5.2) for watching DOM element creation and removal using Mutation Observers. ## Project Structure ``` src/arrive.js # Main source file minified/arrive.min.js # Minified build tests/ spec/arriveSpec.js # Jasmine test specs lib/jasmine-2.0.0/ # Jasmine test framework SpecRunner.html # Test runner (open in browser) withoutjQuery.js # Tests without jQuery ``` ## Running Tests Tests use Jasmine 2.0 and run in-browser: ```bash npm test # Opens tests/SpecRunner.html in browser ``` There is no CLI test runner — open `tests/SpecRunner.html` directly in a browser. ## Building There is no build script. To update the minified file, manually minify `src/arrive.js` into `minified/arrive.min.js`. ## Key Architecture - `src/arrive.js` wraps `MutationObserver` to provide `arrive` (creation) and `leave` (removal) events - Works with `document`, `HTMLElement`, `HTMLDocument`, `Window`, `HTMLCollection`, and `NodeList` - Optional jQuery integration — attaches to `$.fn` when jQuery is present, but has zero required dependencies - `Arrive` is the global export; also exposes `Arrive.unbindAllArrive()` and `Arrive.unbindAllLeave()` ## API ```javascript // Watch for element creation element.arrive(selector, [options], callback) element.arrive(selector) // Promise-based (resolves once) // Watch for element removal element.leave(selector, [options], callback) // Unbind element.unbindArrive([selector], [callback]) element.unbindLeave([selector], [callback]) Arrive.unbindAllArrive() Arrive.unbindAllLeave() ``` ### Options | Option | Default | Description | |--------|---------|-------------| | `fireOnAttributesModification` | `false` | Watch attribute changes on existing elements | | `onceOnly` | `false` | Fire callback once, then auto-unbind | | `existing` | `false` | Include elements already in the DOM | | `timeout` | `0` | Auto-unbind after N ms, call callback with `null` (0 = disabled) |