【问题标题】:select2 search dropdown top offset incorrectselect2 搜索下拉列表顶部偏移不正确
【发布时间】:2018-02-13 14:12:31
【问题描述】:

select2 多个字段有点奇怪,在后续搜索中,下拉搜索消息显示不正确。见下文:

标记的蓝色区域是select2 字段,标记的红色区域是显示下拉消息的位置。请注意,搜索完成后,结果会显示在正确的位置,但由于某种原因,消息显示的位置超出了应有的位置。

初始化参数:

$budgetAdmins.select2({
        placeholder: 'Type a person\’s name...',
        minimumInputLength: 3,
        createSearchChoicePosition: 'bottom',
        dropdownParent: $budgetAdmins.closest('.budget-field'),
        type: 'POST',
        ajax: {
            url: theme.ajax_url,
            dataType: 'json',
            delay: 250
            data: ...
       }
});

其他实现细节:

  • 仅当浏览器视口高度小到足以将消息和后续列表强制置于顶部(通常在底部正常显示)时才会发生此错误。
  • 一旦列表显示出来,它就会正确地放在字段的顶部,并且只有输入 3 个或更多字符的消息和 AJAX 加载消息才会被推送到上面。
  • 为了解决这个问题,我只包含了createSearchChoicePositiondropdownParent。它没有任何效果。
  • 搜索框的第一个焦点很好地显示消息,与字段顶部齐平。此问题仅发生在选择值后的第二个焦点上。然后它在下一个焦点上工作,然后在下一个焦点上再次中断。此外,当显示损坏时,可以通过滚动页面来修复。
  • 使用select2 4.0.5 版。

【问题讨论】:

    标签: javascript jquery jquery-select2


    【解决方案1】:

    一个 hack 修复:

    $budgetAdmins.on('select2:open', e => {
        var timer = setTimeout(() => {
            jQuery('html, body').trigger('scroll');
        }, 1);
    });
    

    我试过不带setTimeout,但没有效果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多