【问题标题】:Bootstrap Tokenfields set dropdown widthBootstrap Tokenfields 设置下拉宽度
【发布时间】:2018-09-02 20:10:01
【问题描述】:

我正在使用 Bootstraps Tokenfields,但我发现由于某种原因,我打开的列表中的宽度设置为超过 1000

<ul id="ui-id-1" tabindex="0" class="ui-menu ui-widget ui-widget-content ui-autocomplete ui-front" style="min-width: 98px; width: 510.656px; top: 994px; left: 281px; display: none;">
    <li class="ui-menu-item">
        <div id="ui-id-29" tabindex="-1" class="ui-menu-item-wrapper">red</div>
    </li><li class="ui-menu-item">
        <div id="ui-id-30" tabindex="-1" class="ui-menu-item-wrapper">blue</div>
    </li>
    <li class="ui-menu-item">
        <div id="ui-id-31" tabindex="-1" class="ui-menu-item-wrapper">green</div>
    </li>
    <li class="ui-menu-item">
        <div id="ui-id-32" tabindex="-1" class="ui-menu-item-wrapper">yellow</div>
    </li>
    <li class="ui-menu-item">
        <div id="ui-id-33" tabindex="-1" class="ui-menu-item-wrapper">violet</div>
    </li>
    <li class="ui-menu-item">
        <div id="ui-id-34" tabindex="-1" class="ui-menu-item-wrapper">brown</div>
    </li>
    <li class="ui-menu-item">
        <div id="ui-id-35" tabindex="-1" class="ui-menu-item-wrapper">purple</div>
    </li>
    <li class="ui-menu-item">
        <div id="ui-id-36" tabindex="-1" class="ui-menu-item-wrapper">black</div>
    </li>
    <li class="ui-menu-item">
        <div id="ui-id-37" tabindex="-1" class="ui-menu-item-wrapper">white</div>
    </li>
</ul>

我尝试将 css 设置为 width:100%,但它只是在运行时被覆盖。

.ui-autocomplete {
    max-height: 200px !important;
    overflow-y: auto !important;
    /* prevent horizontal scrollbar */
    overflow-x: hidden;
    border:1px solid #222;
    position:absolute;
  }

我也尝试设置上面的 css,但没有任何反应。

我还看到我可以尝试通过 jquery 进行设置,但这并不奏效

<script>
    $('#tokenfield').tokenfield({
        autocomplete: {
          source: ['red','blue','green','yellow','violet','brown','purple','black','white'],
          delay: 100
        },
        showAutocompleteOnFocus: true
    });
    jQuery.ui.autocomplete.prototype._resizeMenu = function () {
        var ul = this.menu.element;
        ul.outerWidth(this.element.outerWidth());
    }
</script>

希望有人可以看看这个,看看我如何配置它。

【问题讨论】:

  • 您使用的是什么版本的 jQ & Bootstrap?您是否能够在 jsFiddle/CodePen/etc 中重新创建此行为?您页面上的其他地方可能有一些 CSS 被应用于您的 li.ui-menu-item 元素 - 尝试隔离会有所帮助。您还可以使用首选浏览器的开发工具中的检查器窗格,然后检查“计算”选项卡以查看在何处/如何设置宽度属性。

标签: jquery css twitter-bootstrap jquery-ui


【解决方案1】:

这对我有用:

el.tokenfield({
    autocomplete: {
        source: data,
        minLength: minLength,
        delay: delay,
        open: function (event, ui) {

            // make width of dropdown equals to width of input field
            var _openDD = $("ul.ui-autocomplete.ui-widget-content:visible");
            var _width = $(this).parent().width();

            _openDD.width(_width);
        }
    },
    delimiter: c_delimiter
});

【讨论】:

  • 虽然这可能会回答问题,但最好添加一些关于此答案如何有助于解决问题的描述。请阅读How do I write a good answer 了解更多信息。
猜你喜欢
  • 2023-01-05
  • 2013-09-06
  • 1970-01-01
  • 2018-12-27
  • 2013-05-06
  • 1970-01-01
  • 1970-01-01
  • 2013-04-23
  • 2016-06-14
相关资源
最近更新 更多