mercury
Version:
A truly modular frontend framework
148 lines (114 loc) • 3.23 kB
Markdown
Auto generated from [value-event](https://github.com/Raynos/value-event) package (version 5.0.0).
<!--
[![build status][1]][2]
[![NPM version][3]][4]
[![Coverage Status][5]][6]
[![gemnasium Dependency Status][7]][8]
[![Davis Dependency status][9]][10]
-->
<!-- [![browser support][11]][12] -->
Create DOM event handlers that write to listeners
```html
<div id='foo'>
<div class='name'>Bob Steve</div>
<input class='name' value='Bob Steve'></input>
</div>
```
```js
var event = require('value-event/event')
var listener = function (data) {
console.log('data', data)
}
var elem = document.getElementById('foo')
elem.querySelector('div.name')
.addEventListener('click', event(listener, {
clicked: true
}))
elem.querySelector('input.name')
.addEventListener('keypress', event(listener, {
changed: true
}))
```
The change event happens when form elements change
For example:
- someone types a character in an input field
- someone checks or unchecks a checkbox
```html
<div id='my-app'>
<input name='foo' value='bar' />
</div>
```
```js
var changeEvent = require('value-event/change')
var listener = function (data) {
console.log('data', data.changed, data.foo)
}
var elem = document.getElementById('my-app')
elem
.addEventListener('input', changeEvent(listener, {
changed: true
}))
```
The submit event happens when form elements get submitted.
For example:
- a button gets clicked
- someone hits ENTER in an input field
```html
<div id='my-app'>
<input name='foo' value='bar' />
</div>
```
```js
var submitEvent = require('value-event/submit')
var listener = function (data) {
console.log('data', data.changed, data.foo)
}
var elem = document.getElementById('my-app')
elem
.addEventListener('keypress', submitEvent(listener, {
changed: true
}))
```
The value event happens whenever the event listener fires.
It attaches input values just like `'submit'` and `'change'`
except it doesn't have special semantics of what's a valid
event.
```html
<div id='my-app'>
<input name='foo' value='bar' />
</div>
```
```js
var valueEvent = require('value-event/value')
var listener = function (data) {
// currentValues is { 'foo': 'bar' }
console.log('data', data.changed, data.foo)
}
var elem = document.getElementById('my-app')
elem.querySelector('input.name')
.addEventListener('blur', valueEvent(listener, {
changed: true
}))
```
`npm install value-event`
- Raynos
[]: https://secure.travis-ci.org/Raynos/value-event.png
[]: https://travis-ci.org/Raynos/value-event
[]: https://badge.fury.io/js/value-event.png
[]: https://badge.fury.io/js/value-event
[]: https://coveralls.io/repos/Raynos/value-event/badge.png
[]: https://coveralls.io/r/Raynos/value-event
[]: https://gemnasium.com/Raynos/value-event.png
[]: https://gemnasium.com/Raynos/value-event
[]: https://david-dm.org/Raynos/value-event.png
[]: https://david-dm.org/Raynos/value-event
[]: https://ci.testling.com/Raynos/value-event.png
[]: https://ci.testling.com/Raynos/value-event