我正在拦截 mousedown
在div
上并返回false
取消事件(并最终启动拖放操作),因为(出于某种原因)mousemove
如果初始 mousedown
则事件不会触发没有被取消。
但是,我仍然想要那个mousedown
为了有效地发生,所以我尝试使用所有相同的参数手动创建第二个事件,然后分派(dispatch)它(这次将其标记为欺骗,这样我就可以拦截此事件并且不取消欺骗事件)。
然而,问题是欺骗事件并没有从事件文本框中删除焦点,而这正是我需要它做的。
我创建了一个 jsfiddle 来演示该问题:http://jsfiddle.net/8yDr5/
首先聚焦文本框并单击红色框。理想情况下,它应该使文本框散焦,但它没有发生。我是否做错了什么,或者我可以欺骗其他一些事件以使该文本框变得模糊?
我在 Mac 版 Chrome、Safari 和 Firefox 14 中对此进行了测试,它们都出现了该问题。
最佳答案
好吧,如果你无法重现原来的问题,至少我会帮助你解决散焦问题:
只需添加
document.getElementById('textbox').blur();
(或者如果要点击多次,您可以将 document.getElementById('textbox')
存储在变量中)
关于JavaScript 手动调度 mousedown 不会使文本框散焦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12290671/