表单输入失去了对IE中滚动条单击的关注

时间:2010-02-17 21:30:43

标签: javascript jquery internet-explorer focus scrollbar

我希望有人可以帮助我。我知道之前已经讨论了here,但这个例子对我来说是原型和外来的。我正在寻找一个严格的javascript或jquery解决方案。我有一个示例设置here。单击FF中的滚动条,您没有收到警报,但在IE中单击它就可以了。请帮助我,谢谢!

2 个答案:

答案 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给了我许多小时的回报。