h5p-lib-controls
Version:
Library for adding user input to web applications
29 lines (24 loc) • 693 B
JavaScript
import {Keys, onKey} from './keys'
/**
* Handle click events for elements not natively handling enter & space key as click
* @param {jQuery} $element
* @param {Function} callback
* @param {Object}
*/
export const onClick = ($element, callback, {ignoreKeyboard = false, preventDefaultForKeys = true} = {}) => {
const doCallback = (event) => {
if (event.type !== 'click' && preventDefaultForKeys) {
event.preventDefault();
}
callback(event);
};
// Listen to mouseclicks
$element.click(doCallback);
if (ignoreKeyboard !== true) {
// Listen to space + enter
onKey($element, [
{key: Keys.SPACE},
{key: Keys.ENTER}
], doCallback);
}
};