Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 已禁用元素上事件的vuejs列表_Javascript_Html_Vue.js - Fatal编程技术网

Javascript 已禁用元素上事件的vuejs列表

Javascript 已禁用元素上事件的vuejs列表,javascript,html,vue.js,Javascript,Html,Vue.js,如何侦听禁用元素上的事件?我有一个已禁用的输入框,但如果用户双击它,我希望启用它。我知道这是可能的使用标签和关闭标签使用CSS。我想知道是否有一种方法可以在没有标签的情况下做到这一点——是否有某种方法可以禁用输入并仍然为其处理事件?或者有没有办法使输入不可聚焦,除非双击?您可以通过超时来阻止输入的默认操作。如果用户在ms运行之前单击,则运行所需代码: newvue({ el:“#应用程序”, 数据:{ 勾选:假, timeoutId:null,//您不需要定义它,vue将为您初始化它,但为了清

如何侦听禁用元素上的事件?我有一个已禁用的输入框,但如果用户双击它,我希望启用它。我知道这是可能的使用标签和关闭标签使用CSS。我想知道是否有一种方法可以在没有标签的情况下做到这一点——是否有某种方法可以禁用输入并仍然为其处理事件?或者有没有办法使输入不可聚焦,除非双击?

您可以通过超时来阻止输入的默认操作。如果用户在ms运行之前单击,则运行所需代码:

newvue({
el:“#应用程序”,
数据:{
勾选:假,
timeoutId:null,//您不需要定义它,vue将为您初始化它,但为了清晰起见
},
方法:{
dblClick(事件){
//简单点击
如果(!this.timeoutId){
event.preventDefault();
event.stopPropagation();
this.timeoutId=setTimeout(()=>{
this.timeoutId=null;
}, 300);
return//如果是单击,则不要在代码下面运行
}
//双击
this.timeoutId=null;
console.log('dblClick')
}
}
});
#应用程序{
显示器:flex;
证明内容:中心;
对齐项目:居中;
弯曲方向:立柱;
宽度:100%;
高度:100vh;
}
h1{
字号:1.5em;
边缘底部:5px;
}
我{
字体大小:.75em;
保证金:0;
颜色:#9696;
}
输入{
变换:尺度(2);
利润率:20px0;
}

复选框为{{已选中?'checked':'notchecked'}
双击以更改

如果父元素不大于输入,则可以向输入的父元素添加事件侦听器。可以在输入上添加一个
@单击
,然后使用超时来模拟双击。如果在超时完成之前有一个传统的点击,您可以执行您想要的逻辑,否则,请阻止它。