【问题标题】:How can I get the height of select2 drop-down?如何获得 select2 下拉菜单的高度?
【发布时间】:2014-10-03 16:58:51
【问题描述】:

我正在尝试获取 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完全打开时我需要确定下拉菜单的高度 * 编辑(完全打开 = 打开完成时) 感谢您的回答

【问题讨论】:

    标签: jquery css jquery-select2 ui-select2


    【解决方案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 边距)。

    【讨论】:

    • 是的,但这是最大高度,但如果结果只是例如。 3个选项实际高度更小
    • 那我不明白你的问题,抱歉。从您的帖子中您知道并且可以获得高度,并且您明确要求它完全打开时的高度,我回答了...
    • 好的,对不起,我需要获取下拉菜单的实际高度,而不是 css 的最大高度。 (我的意思是完全打开=打开完成时)
    【解决方案2】:

    我的解决方案:

    将它挂到另一个事件中:

    select2-highlight 在下拉下降时突出显示时发射。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-14
      • 2016-04-13
      • 1970-01-01
      • 2021-10-14
      • 1970-01-01
      • 1970-01-01
      • 2020-01-17
      • 1970-01-01
      相关资源
      最近更新 更多