我有:
<a href={link} on:click={() => func(param)} on:auxclick={() => func(param)}>
click
</a>
Run Code Online (Sandbox Code Playgroud)
有什么方法可以将on:click和组合on:auxclick成on:click|auxclick,或者类似这种效果的东西吗?(下面的代码给了我一个语法错误。)
<a href={link} on:click|auxclick={() => func(param)}>
click
</a>
Run Code Online (Sandbox Code Playgroud)
编辑:为了更清楚的描述
不,如果不创建命名函数,这是不可能的。
您提出的语法:on:click|auxclick={func}已由事件修饰符功能保留(您可以从此处了解它们)
将来你也许可以监听所有事件 - 提案和语法可以在github 上的问题中找到
UPD:还建议您查看@kindoflew 答案。您可以使用自定义操作来实现此操作。
小智 5
您可以使用操作并手动设置要侦听的事件:
// multiClicks.js
export const multiClicks = (node, callback) => {
node.addEventListener('click', callback)
node.addEventListener('auxclick', callback})
return {
destroy() {
node.removeEventListener('click', callback)
node.removeEventListener('auxclick', callback})
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后在您的组件中使用它:
<script>
import { multiClicks } from './multiClicks.js'
</script>
<a use:multiClicks={() => func(param)}>...</a>
Run Code Online (Sandbox Code Playgroud)