首页 > 解决方案 > Svelte,on:click 事件在每个块内触发页面加载

问题描述

问题在于,在 svelte on:click 由于某种原因在页面加载时触发。任何人都可以向我解释它为什么会发生以及如何防止它,因此它只会在您实际选中该框时触发。仅当 on:click 在每个块内时才会发生这种情况。

<script>
    function handleClick(number) {
        alert(number)
    }
    let numbers = [1,2,3,4,5,6]
</script>
{#each numbers as number}
    <input type=checkbox on:click={handleClick(number)}>
{/each}

你可以看看这里

标签: eventsonclickeachsveltepageload

解决方案


的值on:click应该是一个函数。你正在调用一个函数——它与做这样的事情没有什么不同......

<p>{a} + {b} = {sum(a, b)}</p>

...正如您所料,它会打印调用sum函数的结果。

相反,请执行以下操作:

<input type=checkbox on:click={() => handleClick(number)}>

推荐阅读