我遇到了这个问题,其中用户的单个动作应该触发两个事件,但它只触发第一个事件。单用户行动发射两个事件 - 第二个事件不会触发
场景:
用户输入一些文本到一个特殊字段修改布局对事件的内容,输入文字,而无需离开后场,他们点击一个按钮。
发生了什么事?
我在文本框上单击事件,然后单击按钮上的事件。我所看到的是专注事件被解雇,但点击事件从来没有。
我这个包裹在一个的jsfiddle:
$('#theText').focusout(function(){
$("#focusevent").text("Focusevent");
console.log("focus");
});
$('#theButton').click(function(){
$("#clickevent").text("Clickevent");
console.log("click");
});
所以,如果你在文本框中单击然后单击我期望这两个事件来触发按钮,但我们只看到焦点事件。
我通过让mousedown事件触发按钮而不是点击事件(这会在focusout事件之前触发)来为此设置一个临时修复,但这导致了一些我不想看到的其他行为和问题。由于那些我认为最佳的解决方案是找到一种方法来获得焦点和点击事件。有没有人有关于如何解决这个问题的想法?
编辑:看到最初的反应之后,我挖得更深一些,这里的问题是,事件的内容事件改变页面布局,非常轻微地按下按钮的位置下来。点击事件在聚焦完成后触发,但由于按钮不再位于完全相同的位置,因此不会发生任何事情。
这里有一个更新的小提琴,显示我的问题 http://jsfiddle.net/fCz6X/11/
http://jsfiddle.net/fCz6X/8/使用的console.log – megawac
改变了你的代码将文本添加到页面insted的警报的 - 工作正常[这里](HTTP:// jsfiddle.net/fCz6X/9/) – 2013-10-29 15:31:50
@MikeW文本实际上已经实际移动按钮,例如)http://jsfiddle.net/fCz6X/10/ – codewarrior