语义ui滚动下拉列表未显示所选项目

时间:2019-02-19 16:14:44

标签: javascript dropdown semantic-ui

我正在使用语义ui滚动下拉列表。

在页面加载时,我设置选定的值。

问题是,当我们默认打开下拉菜单时,语义ui会显示下拉菜单的第一个元素,而不显示所选的值。

如果您选择其他值,则新的下拉位置就是所选值之一。

第一次打开下拉菜单时,是否可以显示所选元素。

下拉

$('.dropdown').dropdown();
$('.dropdown').dropdown( 'set selected', '10');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.1.3/semantic.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.js"></script>
<div class="ui scrolling dropdown">
  <div class="text">10</div>
		<i class="dropdown icon"></i>
		  <div class="menu">
		    <div class="item" data-value="1">1</div>
        <div class="item" data-value="2">2</div>
        <div class="item" data-value="3">3</div>
        <div class="item" data-value="4">4</div>
        <div class="item" data-value="5">5</div>
        <div class="item" data-value="6">6</div>
        <div class="item" data-value="7">7</div>
        <div class="item" data-value="8">8</div>
        <div class="item" data-value="9">9</div>
        <div class="item" data-value="10">10</div>
      </div>
	</div>

1 个答案:

答案 0 :(得分:0)

经过一些调查,我使用.index()和.scrollTop()以及下拉回调.onShow

解决了

$('.dropdown').dropdown();
$('.dropdown').dropdown('set selected', '10');
$('.dropdown').dropdown({
  onShow: function(value, text) {
    setTimeout(function() {
      var preSelected = $('#dd > div.item.active.selected').index('.item');
      $('#dd').scrollTop((preSelected - 2) * 36);
    }, 100);
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.1.3/semantic.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.js"></script>

<div class="ui scrolling dropdown">
  <div class="text">10</div>
  <i class="dropdown icon"></i>
  <div class="menu" id="dd">
    <div class="item" data-value="1">1</div>
    <div class="item" data-value="2">2</div>
    <div class="item" data-value="3">3</div>
    <div class="item" data-value="4">4</div>
    <div class="item" data-value="5">5</div>
    <div class="item" data-value="6">6</div>
    <div class="item" data-value="7">7</div>
    <div class="item" data-value="8">8</div>
    <div class="item" data-value="9">9</div>
    <div class="item" data-value="10">10</div>
  </div>
</div>