首页 > 解决方案 > 如何捕捉 select2 下拉菜单的宽度?

问题描述

我有一个 select2 下拉菜单,其容器的宽度为 100%。容器宽度是可变的。我的下拉列表具有正确的宽度。但是当我选择一个名称很长的选项时,下拉列表的大小会增加。我尝试了很多方法来防止这种情况。但是没有任何效果,因为我不能使用固定大小。

所以我的方法是在选择选项之前捕获select2的大小,然后在选择选项之后再次将相同的大小添加到选择框。但是试图捕捉选择框的宽度是行不通的。

$(document).on('change', '.select2', function(e) {
    var width = $( this ).css( "width" );
    alert(width);
  });

输出是1px,但大小肯定比 1px 宽。

https://jsfiddle.net/d5w8t36m/1/

标签: jqueryjquery-select2

解决方案


$(this)在这种情况下,实际上是所选项目而不是选择下拉列表。要获取选择下拉列表,请调用父级然后width()

$(document).on('change', '.select2', function(e) {
    var width = $(this).parent().width();
    alert(width);
});

推荐阅读