一、现象
在最近的发展中,需要以下具体要求。
这是一个非常常见的要求,
输入框负责在单击返回和丢失焦点时
确认输入。按钮负责清除输入,输入绑定代码是:
Input.addEventListener('blur,
函数(){(){
console.log(输入模糊);
});
Input.addEventListener('keyup,函数(){(){
console.log(输入KeyUp);
});
x绑定的代码是:
Button.addEventListener(听到咔哒声,
功能(e){
console.log(按钮点击');
});
尝试
执行代码,并按照第一个单击按钮
取消操作,结果如下:
如您所见,单击按钮前会触发输入模糊,这使得取消操作实际上无效。
同时,也可以找到事件的执行
顺序(输入模糊)-(单击按钮);
两。
解决方案1
最简单的办法是改变按钮的时间的onmousedown事件得到以下结果:
事件的顺序是
正确的,但在这个解决方案中有两个问题:
a)在按下按钮后不能取消单击
B)为了
控制模糊的执行,需要额外的代码。
那么木材还有进一步的解决办法吗
三。解决方案2
按钮绑定到
鼠标的同时模糊事件,和具体的代码和执行结果如下:
Button.addEventListener('mousedown功能(e){
console.log(按钮mousedown);
E.preventDefault();
});
Button.addEventListener(听到咔哒声,功能(e){
console.log(按钮点击');
Input.blur();
});
这样就克服了第一种方案的两个缺点,完美地解决了需求。
四,执行
命令 经过查询W3C标准,没有模糊和MouseDown顺序指令,点击被发现。据猜测,模糊需求的mousedown执行默认的事件触发,事件的顺序应该是:MouseDown ->(其他)模糊-> MouseUp ->点击
总结
以上就是本文的全部内容。希望本文的内容能给大家的
学习或
工作带来一定的帮助。如果有任何疑问,您可以留言交流,谢谢您的
支持。