在 IE6 和 IE7 中滚动 div 时,jQuery UI 按钮不会移动(有时会消失)

标签 jquery internet-explorer jquery-ui internet-explorer-7 internet-explorer-6

我有一个可以滚动的 div(主页没有滚动条)和一个可滚动内容中的 jQuery UI 按钮。在 IE6 和 IE7 中,该按钮不会随 div 的内容一起滚动,并且如果您在其位置不正确时将鼠标放在其上,则会发生有趣的事情。

这是一个示例( header 中包含 jQuery 1.5):

<link rel="stylesheet" type="text/css" href="Lib/jquery-ui-1.8.10.custom.min.css" />
<script type="text/javascript" src="Lib/jquery-1.5.min.js"></script>
<script type="text/javascript" src="Lib/jquery-ui-1.8.10.custom.min.js"></script>

<div style="width: 400px; height: 300px; overflow: scroll;">
    <div style="width: 400px; height: 1200px;">
        Hello world<br /><br />
        <a href='#' id='test'>test button</a>
    </div>
</div>
<script>
    $('#test').button();
</script>

我找到了一个解决方法,但它并不完美;我捕获滚动事件并在按钮元素上调用 .button('enable') (由于某种原因 .button('refresh') 没有执行任何操作)。它使按钮正确滚动,但现在按钮在滚动时显示在 div 外部(它向上滚动超过 div 顶部并且仍然可见)。代码如下:

<link rel="stylesheet" type="text/css" href="Lib/jquery-ui-1.8.10.custom.min.css" />
<script type="text/javascript" src="Lib/jquery-1.5.min.js"></script>
<script type="text/javascript" src="Lib/jquery-ui-1.8.10.custom.min.js"></script>

<div class='scrollingDiv' style="width: 400px; height: 300px; overflow: scroll;">
    <div style="width: 400px; height: 1200px;">
        Hello world<br /><br />
        <a href='#' id='test' class='scrollingButton'>test button</a>
    </div>
</div>
<script type="text/javascript">
    $(function(){
        $('#test').button();

        $('.scrollingDiv').scroll(function() {
            $('.scrollingButton').button('enable');
        });
    });
</script>

最佳答案

这看起来与 jQuery http://bugs.jqueryui.com/ticket/5281 中的错误有关。

解决方法是将 position:relative; 设置为滚动容器。

正如 fracmak 在 jQuery 票证中评论的那样:IE7 存在溢出 div 的问题(滚动和隐藏)。这不是 ui-button 控件可以真正控制/检测的东西。

关于在 IE6 和 IE7 中滚动 div 时,jQuery UI 按钮不会移动(有时会消失),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5490826/

相关文章:

html - 文件在 href 链接中打开而不是在 Internet Explorer 中下载

javascript - event.preventDefault();在 IE 中工作很奇怪

css - 更改 jQuery UI slider 大小

Javascript mousup 事件触发得很晚

javascript - 在 fullcalendar.io 上重新渲染并删除所有事件

javascript - 为什么 ExtJs 4.1.3 中的文本字段 id 与 IE 中的监听器冲突?

javascript - 使用 JQuery Droppend 时停止删除可拖动元素

javascript - jQueryUI,窗口关闭时的函数

php - 如何根据数据库中最后一个ID的下拉选择自动生成ID号

javascript - 将 dygraph 内容注入(inject) jquery UI Accordion 不显示