JQuery 选择的插件在 IE 中导致垂直页面溢出问题

JQuery Chosen plugin causing vertical page overflow issue in IE

我有多个 selector 在我看来它按预期工作,除非我使用 JavaScript 重置列表。

列表重置前没有垂直滚动条,重置后在视图页脚下方添加了很多空 space,创建了一个垂直滚动条,我不知道为什么这个空 space 正在出现。

这是我之前的视图截图:

这是点击重置列表按钮后的截图:

导致此问题时我采取的步骤是:

  1. Select 列表中的一项或多项
  2. 点击重置列表按钮
  3. 选择的 multiselect 正确刷新,但出现 CSS 问题

我的代码 decleration 工作正常减去意外的 CSS 行为,如下所示:

<select id="chosenMultiSelect" multiple="multiple" >
    <option>Item 1</option>
    <option>Item 2</option>
    <option>Item 3</option>
    <option>Item 4</option>
    <option>Item 5</option>
    <option>Item 6</option>
    <option>Item 7</option>
    <option>Item 8</option>
    <option>Item 9</option>
</select>

<button id="btnClear" class="btn btn-default">Reset list</button>

<script type="text/javascript">
    $(document).ready(function () {
        $('#chosenMultiSelect').chosen({ width: '100%' });

        $('#btnClear').click(function () {
            $('#chosenMultiSelect').val('').trigger('chosen:updated');
        });
    });
</script>

其他信息:

  1. 我已经在 IE、Chrome 和 Firefox 中测试过,它似乎只发生在 IE 的浏览器(版本 9、10 和 11)中。
  2. 如果我在多 selector.
  3. 中 selected 项目之前单击重置列表按钮,则不会出现此问题

2015 年 2 月 11 日更新

我现在在其他情况下也遇到过这种情况。例如,将它用作 Bootstrap 模态框内的单个 select,这会(并非总是但有时)导致页面上出现大量溢出。

没有其他人经历过这种情况吗?您知道是什么原因造成的吗?可能是在某处定义的其他 CSS 等等

决定再看看这个,发现有人在 GitHub page 上报告了类似的问题。

我尝试将我使用的版本从 1.0 更新到 1.5.1,但这没有用,但是问题提出者确实提供了 CSS 解决方法,它不能完全解决问题,但提供了一个更好的解决方案,但取决于不同的屏幕尺寸。

这是 CSS 代码,需要包括...

.chosen-container .chosen-drop {
     overflow-y: auto;
     max-height: 400px;
}
提出问题并提供解决方法的

bharos 还提供了以下评论

This is a workaround, as I understood that the chosen dropdown, when in hidden state is having a large size, when it has large number of options. So when we restrict the max-height this doesn't happen. Make this max-height to a comfortable value according to your requirements. But this is an issue which needs to be addressed from chosen, this is just a workaround.