A 1k script that adds a long-press event to the DOM using pure JS
npm install long-press-event 
A 1k script that adds a long-press event to the DOM using CustomEvent and pure JavaScript. Works in IE9+, Chrome, Firefox, Safari as well as popular mobile browsers including Cordova _(Phone Gap)_ applications.
Defaults to 1.5 seconds but can be overridden by adding a data-long-press-delay attribute to an element.
Try the demo
Add the long-press-event.min.js file to your page and then listen for the event.
To listen for a long-press on any HTML element:
``js`
// the event bubbles, so you can listen at the root level
document.addEventListener('long-press', function(e) {
console.log(e.target);
});
To listen for a long-press on a specific HTML element:
`js
// grab the element
var el = document.getElementById('idOfElement');
// listen for the long-press event
el.addEventListener('long-press', function(e) {
// stop the event from bubbling up
e.preventDefault()
console.log(e.target);
});
`
To set a custom delay and listen for a long-press:
`html`
Press and hold me for .5s
To set a default application wide data-long-press-delay, set attribute on a parent/topmost element:
`html`
...
...
1. Fork it!
2. Create your feature branch: git checkout -b my-new-featuregit commit -m 'Add some feature'
3. Commit your changes: git push origin my-new-feature
4. Push to the branch:
5. Submit a pull request
The project includes everything needed to tweak, including a node webserver. Run the following, then visit http://localhost:8080 in your browser.
_You can test on a desktop using Device Mode in Google Chrome._
`bash`
git clone https://github.com/john-doherty/long-press-event
cd long-press
npm install
npm start
Update long-press-event.min.js by tweaking the version number in package.json and running:
`bash``
npm run build
If you find this useful, please star the repo. It helps me prioritise which open source issues to tackle first.
For change-log, check releases.
Licensed under MIT License © John Doherty