Reusing DOM event logic with custom events
Before we start talking directly about actions, let’s look at an example of using the mousedown
and mouseup
events to create a long-press behavior. We shall see how this simple example will lead us on to Svelte actions:
<script> let timer; function handleMousedown() { timer = setTimeout(() => { console.log('long press!'); }, 2000); } function handleMouseup() { clearTimeout(timer); } </script> <button on:mousedown={handleMousedown} on:mouseup={handleMouseup} />
In the preceding example, we tried to implement a long-press behavior in a button. The idea is to press and hold the button for more than two seconds and then perform some action. As we detect it’s a long press, we print 'long press!'
into...