MISP/app/webroot/js/misp-touch.js

40 lines
1.0 KiB
JavaScript

/**
* support for touch devices without the need
*/
$(document).ready(function() {
var touchStartTime = 0;
var touchTarget = null;
document.body.addEventListener('touchstart', function(ev) {
if (touchStartTime == 0) {
touchStartTime = (new Date()).getTime();
touchTarget = ev.target;
}
}, false);
document.body.addEventListener('touchcancel', function(ev) {
// iphone only
touchStartTime = 0;
touchTarget = null;
}, false);
document.body.addEventListener('touchend', function(ev) {
var touchEndTime = (new Date()).getTime();
var canTrigger = (touchStartTime > 0 && (touchEndTime - touchStartTime) > 500 && touchTarget == ev.target);
// reset the variables BEFORE calling the event handler
// so that our code works even if the handler dies
touchStartTime = 0;
touchTarget = null;
if (canTrigger) {
var newEvent = new MouseEvent('dblclick', ev);
try {
ev.target.dispatchEvent(newEvent);
} catch (e) {
// don't care, this was complimentary event anyway
}
}
}, false);
});