0

我正在尝试获取 select2 下拉实际渲染高度,但是:

如果我使用这样的东西:

$('#my-input-s2').on('select2-open', function() {
    var height = $(".my-dropdown").first().height()
    console.log(height)
  })

结果始终为 29

当我使用它时(因为 select2 由于读取远程数据而没有完全打开:

 $('#my-input-s2').on('select2-open', function() {
    var height = setTimeout($(".my-dropdown").first().height(),0)
    console.log(height)
  })

我的结果是每次打开 select2 时值逐渐增加(例如 102,然后是 109,然后是 114)

但是当select2完全打开时我需要确定下拉菜单的高度*编辑(完全打开=打开完成时)谢谢你的回答

4

2 回答 2

1

不是设定值吗?select2 CSS 说:

.select2-results {
    margin: 4px 4px 4px 0;
    max-height: 200px;
    overflow-x: hidden;
    overflow-y: auto;
    padding: 0 0 0 4px;
    position: relative;
}

所以一个完全打开的下拉框的高度是 200px(+8 边距)。

于 2014-10-03T17:07:21.873 回答
1

我的解决方案:

将其挂到另一个事件:

select2-highlight 在下拉列表中突出显示选项时触发。

$('#my-input-s2').on('select2-highlight', function() {
            var height = $(".my-dropdown").height()
    })
于 2014-10-06T07:39:07.190 回答