如何在 Windows 调整大小时调整所选 jquery 下拉列表的大小

Posted

技术标签:

【中文标题】如何在 Windows 调整大小时调整所选 jquery 下拉列表的大小【英文标题】:How to resize a chosen jquery dropdownlist on windows resize 【发布时间】:2014-12-13 01:46:27 【问题描述】:

我有以下 asp.net 代码,它使用选择的 jQuery 来自定义 dropdownlist

<asp:DropDownList ClientIDMode="Static" ID="ddlProvider" CssClass="setProvDDStyle" runat="server" AppendDataBoundItems="true"></asp:DropDownList>
<asp:DropDownList ClientIDMode="Static" ID="ddlSpecialty" CssClass="chosen-select setProvDDStyle" runat="server" AppendDataBoundItems="true"></asp:DropDownList>

我使用下面的脚本来初始化dropdownlist

<script type="text/javascript">
    var config = 
        '.chosen-select': ,
        '.chosen-select-deselect':  allow_single_deselect: true ,
        '.chosen-select-no-single':  disable_search_threshold: 10 ,
        '.chosen-select-no-results':  no_results_text: 'Oops, nothing found!' ,
        '.chosen-select-width':  width: "95%" 
    
    for (var selector in config) 
        $(selector).chosen(config[selector]);
    
</script>

CSS:

.setProvDDStyle

    width: 100%;

这是输出:

我故意将提供者下拉列表中的 chosen-select 样式设置为创建样式。当我调整浏览器窗口的大小时,您可以看到dropdownlist 的宽度与chosen select 样式不会根据容器调整大小。我在windows.resize() 函数中添加了上述脚本,但实际上并没有做任何事情。

我将如何完成样式化的下拉列表以根据容器的大小调整大小

【问题讨论】:

【参考方案1】:

我将您的下拉列表包装在一个容器 DIV 中:

<div id="ddlSpecialtyContainer">
  <asp:DropDownList ClientIDMode="Static" ID="ddlSpecialty" CssClass="chosen-select setProvDDStyle" runat="server" AppendDataBoundItems="true"></asp:DropDownList>
</div>

然后我添加了一个窗口resize 事件处理程序,它调整下拉列表容器内动态生成的jQuery选择控件的大小。

$(window).resize(function () 
  var width = $("#ddlSpecialtyContainer")[0].offsetWidth + "px";
  $("#ddlSpecialtyContainer .chosen-container").css("width", width);
);

这似乎按您的要求工作。

【讨论】:

ddlSpecialtyContainer 我想应该是 100% 宽度? 如果这是你想要的。 如果您查看 jQuery 选择的小部件的源代码,您将看到一个名为 set_up_html 的函数。此函数在生成所选小部件时调用,它会根据下拉列表的当前大小将固定宽度应用于所选小部件。这只会运行一次,因此您必须添加一个调整大小事件处理程序,以便在屏幕尺寸发生变化时随时更改所选小部件的宽度。

以上是关于如何在 Windows 调整大小时调整所选 jquery 下拉列表的大小的主要内容,如果未能解决你的问题,请参考以下文章

如何根据所选选项的高度调整选择菜单的大小?

根据所选 OPTION 的宽度自动调整 SELECT 元素的大小

SwiftUI:如何调整 UIViewRepresentable 输出的大小?

如何在 iPhone 中以高质量调整图像大小

在运行时在 c++ Windows API 中调整窗口大小?

如何在Swift中调整图像大小?