<button on:longpress="set({ done: true })">click and hold</button>
{#if done}
<p>clicked and held</p>
{/if}
<script>
export default {
events: {
longpress(node, callback) {
function onmousedown(event) {
const timeout = setTimeout(() => callback(event), 1000);
function cancel() {
clearTimeout(timeout);
node.removeEventListener('mouseup', cancel, false);
}
node.addEventListener('mouseup', cancel, false);
}
node.addEventListener('mousedown', onmousedown, false);
return {
destroy() {
node.removeEventListener('mousedown', onmousedown, false);
}
};
}
}
};
</script>
{}