jquery 将href添加到自动完成列表

vsaztqbk  于 2023-04-05  发布在  jQuery
关注(0)|答案(1)|浏览(140)

我需要一点帮助与jquery.我试图添加链接功能到一个自动完成列表.基本上,它显示建议的链接根据什么是在输入键入.下面是只产生自动完成的脚本...
我正在使用一个插件(本文省略),但如果需要,可以在这里查看:https://www.cssscript.com/demo/autocomplete-typeahead-bootstrap-5/autocomplete.js
我在HTML底部的代码:

<script>
    var datasrc = [
      {label: 'About', value: 'about.html'},
      {label: 'Components', value: 'components.html'},
      {label: 'Usage', value: 'usage.html'},
    ]
    const ac = new Autocomplete(document.getElementById('autosuggest'), {
      data: datasrc,
      treshold: 1,
      maximumItems: 8,
      onSelectItem: ({label, value}) => {
        console.log("user selected:", label, value);
      }
    });
  </script>

我看到了这篇文章:JQuery Autocomplete Where the Results are Links-但我不确定如何将“事件函数”集成到上面的代码中。

oxcyiej7

oxcyiej71#

添加**location时.href = value;**增加了功能,它只刷新页面。插件生成按钮。所以,我改变了autocomplete.js中的行,它从这个创建项目:

<button type="button" class="dropdown-item" data-value="${item.value}">${label}</button>

改为:

<a class="dropdown-item" href="${item.value}">${label}</a>

现在它产生了可点击的链接!

更新日期:

我忘了说**location.href = value;按钮输出变为锚后,**就不需要了,如果不删除,点击后可能会出现未定义的错误。
另外,为了在点击带有散列标签的锚时刷新页面(我知道这很奇怪),我在autocomplete.js中添加了以下代码,以便在散列标签完好无损的情况下重新加载页面。由于另一个脚本阻止在菜单处于活动状态时在页面主体上滚动,移动的上的自动完成菜单需要重新加载页面。重新加载页面会重置主体。

location.href = e.target.href;
location.reload();

相关问题