AngularJS:将焦点行为添加到类似于`select-option`的列表项

时间:2017-01-28 12:49:13

标签: javascript jquery angularjs dom

我有一个html列表,其中包含一些文字项目。当用户输入类似于select-option的文本的首字母时,我需要将列表项置于焦点上,当用户键入其首字母的选项时;匹配选项成为焦点。我需要对列表有相同的行为。我使用angular ng-repeat指令渲染我的列表:

<ul class="list-group m-3 col">
  <li ng-repeat="song in ctrl.songs | orderBy" class="list-group-item list-group-item-action" tabindex="{{$index}}">
    <span>{{song}}</span>
  </li>
</ul>

我搜索了一个插件/库,但遗憾的是找不到任何插件/库。我可以为此写一个directive,但时间不允许。那么有人可以告诉我是否有可用的库/插件?这是plunkr

1 个答案:

答案 0 :(得分:0)

在与jQuerytabindex引导程序共度时间后,我终于开始工作了。

function bringToFocus(text) {
        var item = element.children().filter(function(child) {
          return angular.element(this).text().trim().toLowerCase().startsWith(text.toLowerCase());
        }).first();
        item.focus();
      }

这是工作plunkr。希望它可能对某人有所帮助。