Challenge - 5 Problems
Svelte Click Event Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate2:00remaining
What happens when the button is clicked?
Consider this Svelte component. What will be the value of
count after clicking the button twice?Svelte
<script> let count = 0; function increment() { count += 1; } </script> <button on:click={increment}>Click me</button> <p>{count}</p>
Attempts:
2 left
💡 Hint
Remember that each click triggers the increment function which adds 1 to count.
✗ Incorrect
Each click calls the increment function, increasing count by 1. After two clicks, count is 2.
📝 Syntax
intermediate2:00remaining
Which option correctly attaches a click event listener in Svelte?
Select the correct syntax to attach a click event listener that calls
handleClick in Svelte.Svelte
function handleClick() { alert('Clicked!'); }
Attempts:
2 left
💡 Hint
Svelte uses a special directive syntax for events starting with 'on:'.
✗ Incorrect
Svelte uses the 'on:event' directive syntax. Only option B uses 'on:click' correctly.
🔧 Debug
advanced2:00remaining
Why does the click event not update the count?
Look at this Svelte component. Why does clicking the button not update the displayed count?
Svelte
<script> let count = 0; function increment() { count = count + 1; } </script> <button on:click="increment()">Click me</button> <p>{count}</p>
Attempts:
2 left
💡 Hint
Check how event handlers are attached in Svelte and how expressions are passed.
✗ Incorrect
In Svelte, event handlers must be passed as expressions without quotes. Using quotes passes a string, so the function is not called.
❓ state_output
advanced2:00remaining
What is the output after clicking the button three times?
Given this Svelte component, what will be the output shown in the paragraph after clicking the button three times?
Svelte
<script> let count = 0; function increment() { count += 2; } </script> <button on:click={increment}>Click me</button> <p>{count}</p>
Attempts:
2 left
💡 Hint
Each click adds 2 to count. Multiply by number of clicks.
✗ Incorrect
Each click adds 2, so after 3 clicks count is 2 * 3 = 6.
🧠 Conceptual
expert3:00remaining
Which option correctly prevents the default action on a click event in Svelte?
You want to prevent the default action of a link when clicked using Svelte's event modifiers. Which option does this correctly?
Svelte
<script> function handleClick(event) { // prevent default here } </script> <a href="https://example.com" on:click={handleClick}>Go</a>
Attempts:
2 left
💡 Hint
Svelte uses event modifiers with a pipe symbol to modify event behavior.
✗ Incorrect
Svelte's correct syntax to prevent default is using the '|preventDefault' modifier on the event directive.