JavaScript手动调度mousedown而不是散焦文本框

时间:2012-09-05 22:27:37

标签: javascript javascript-events focus dispatchevent

演示:http://jsfiddle.net/8yDr5/

我拦截mousedown上的div并返回false取消事件(并最终启动拖放操作),因为(出于某种原因)mousemove如果未取消初始mousedown,则不会触发事件。

但是,我仍然希望mousedown有效地发生,所以我试图用所有相同的参数手动创建第二个事件并在之后发送它(这次将它标记为欺骗,以便我可以拦截这个和< em> not 取消欺骗事件。

然而,问题是欺骗事件不会从活动文本框中移除焦点,这是我需要它做的。

我已经创建了一个jsfiddle来演示问题:http://jsfiddle.net/8yDr5/

首先聚焦文本框并单击红色框。它理想情况下应该使文本框散焦,但它不会发生。有什么我做错了或其他一些我可以欺骗的事件让文本框变得模糊吗?

我已经在Chrome,Safari和Firefox 14 for Mac中对此进行了测试,他们都表现出了这个问题。

1 个答案:

答案 0 :(得分:1)

好吧,如果你无法重现原始问题,至少我会帮你解决散焦问题:

添加

document.getElementById('textbox').blur();

(或者如果要点击很多次,你可以将document.getElementById('textbox')存储在一个变量中)

DEMO: http://jsfiddle.net/8yDr5/2/