我试图按下回车键调用方法,但它不起作用.代码如下.
<template>
<div>
<button @click="callEvent" @keyup.enter="callEvent"> Click </button>
</div>
</template>
<script>
export default{
methods:{
callEvent(){
console.log("Event called");
}
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
该click事件已使用ENTER键触发(它也已Space在某些浏览器中触发,例如适用于台式机的Chrome)。因此,您的代码只需要一个,@click="callEvent"并且所有工作都很好,因为焦点已经在按钮上:
var app = new Vue({
el: "#app",
methods: {
callEvent() {
console.log("Event called");
}
}
});Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.2/vue.min.js"></script>
<div id="app">
<button @click="callEvent">Enter</button>
</div>Run Code Online (Sandbox Code Playgroud)
如果您希望任何ENTER按钮触发按钮,即使它没有聚焦,也应将事件绑定到window对象,该对象可以在mounted处理程序内部进行:
var app = new Vue({
el: "#app",
methods: {
callEvent() {
console.log("Event called");
}
},
mounted() {
window.addEventListener('keyup', function(event) {
if (event.keyCode === 13) {
app.callEvent();
}
});
}
});Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.2/vue.min.js"></script>
<div id="app">
<button>Enter</button>
</div>Run Code Online (Sandbox Code Playgroud)
请记住,如果您使用的是Single File Components,则实例由this关键字公开,可用于在所需处理程序中调用组件方法:
export default {
methods: {
callEvent() {
console.log('Event called')
}
},
mounted() {
window.addEventListener('keyup', event => {
if (event.keyCode === 13) {
this.callEvent()
}
})
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11246 次 |
| 最近记录: |