我的 Angular 代码是这样的>
<input type='text' (blur)='saveData()'>
<button (click)='navigateToPage2()'>
从文本框被聚焦跳到按钮点击,两个事件之间存在竞速条件。
问题是按钮点击被忽略,因为模糊事件首先触发并将微调器带到屏幕上,同时它进行服务器调用以保存数据。
我该如何解决这个确切的问题?
是否有黑客可以在模糊事件之前触发点击事件?
最佳答案
尝试以下解决方案,而不是在模糊事件之前触发点击的黑客攻击:
为了更好地理解这一点,您需要了解特定事件触发的顺序:
- 鼠标按下
- 模糊
- 鼠标移开
- 点击
在这种情况下,您可以使用此订单对您有利。
尝试改用 Mousedown 事件,它会在 blur 事件之前触发。
此外,尝试运行此代码片段。会帮助你理解上面的顺序
Type first in text box below and then click button <br/>
<input type='text' onblur="console.log('blur');" />
<button onclick="console.log('click')"
onmouseup="console.log('mouseup')"
onmousedown="console.log('mousedown')" > Type first and then this click button</button>
关于javascript - 如何防止点击和模糊事件之间的竞争?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43355514/