我希望有人可以帮助我。我知道之前已经讨论了here,但这个例子对我来说是原型和外来的。我正在寻找一个严格的javascript或jquery解决方案。我有一个示例设置here。单击FF中的滚动条,您没有收到警报,但在IE中单击它就可以了。请帮助我,谢谢!
答案 0 :(得分:6)
经过一番搜索后,我想出了this answer。据我所知,您实际上无法取消模糊事件,也无法同时调用焦点事件。这是我没有得到的......你可以模糊焦点,但你不能专注于模糊..无论如何我的解决方案是使用setTimeout函数在焦点丢失后1ms调用焦点事件。
var o = this;
oTimeout = setTimeout(function(){
o.focus();
},1);
使用mouseenter和mouseleave事件,我设置一个布尔值来引用模糊事件
$("div#box").mouseenter(function(){
changeFocus(1);
}).mouseleave(function(){
changeFocus(0);
});
答案 1 :(得分:6)
我遇到了同样的问题,这适用于需要它做的事情。只需将焦点强制放回元素上即可。
$('#divWithScrollBar').scroll(
function () {
$('#elementThatLosesFocus').focus();
});
在元素模糊之后,但在onblur事件开始之前,该事件以某种方式被触发。还没有真正看过它,但这似乎正在发生。
滚动看起来有点慢,但它有效。
IE给了我许多小时的回报。