Javascript 滚动div时的IE焦点

Javascript 滚动div时的IE焦点,javascript,jquery,html,internet-explorer,Javascript,Jquery,Html,Internet Explorer,我的目标是模拟jquery“datepicker”的行为,但不是显示日历,而是显示一个可选择的表 我在chrome和FF中工作,但在IE8中没有:((我不知道你们是否可以用IE运行小提琴,但如果不能,请制作一份本地副本并用IE打开,谢谢) 问题: 在IE中,当我滚动时,div是隐藏的,所以我用 $("#test_table_container").scroll(function() { if (myTimeOut) { cl

我的目标是模拟jquery“datepicker”的行为,但不是显示日历,而是显示一个可选择的表

我在chrome和FF中工作,但在IE8中没有:((我不知道你们是否可以用IE运行小提琴,但如果不能,请制作一份本地副本并用IE打开,谢谢)

问题:

  • 在IE中,当我滚动时,div是隐藏的,所以我用

            $("#test_table_container").scroll(function() {
                if (myTimeOut) {
                    clearTimeout(myTimeOut);
                }
            });
    
    但当我单击滚动条(而不是拖动滚动条)时,div被隐藏。单击箭头按钮时也是如此。但如果我先拖动滚动条,然后单击滚动条,则不会发生这种情况

  • 不幸的是,超时持续时间(90ms)非常断断续续,有时我可以在tr中选择值,然后隐藏div,但有时在触发tr的单击事件之前先隐藏div,这就是为什么值没有反映在输入中


  • 应该不需要设置超时。最好在正文上绑定
    单击
    ,然后使用委派

    请参阅更新的小提琴:


    这只是一个粗略的代码,但是你会得到这个想法,然后可以根据你的需要对它进行优化。更新后的提琴应该也适用于IE。它在IE8中不起作用的原因可能是因为盒子模型的不同。

    感谢你的输入,尽管我不理解你使用的一些术语,但我会查找它们!(“委派”和“盒子模型差异”)hahathanks它是有效的。但接下来的问题是,这是可接受的性能明智吗?检查背景的每一次点击?当然。我们没有连接多个事件处理程序,而是只有一个。事件会冒泡。因此,如果多个事件处理程序没有精心设计,那么性能很可能会下降。通过更高级别的一个处理程序我们只是通过使用事件委派来利用冒泡,即识别事件的目标(哪个元素生成了事件),然后针对特定的目标进行编码。在这种情况下,在任何情况下都必须注意body
    click
    (隐藏下拉列表)。因此,我们不使用单独的事件处理程序,而是使用同一个处理程序。