【问题标题】:jQuery Autocomplete as LinksjQuery 自动完成作为链接
【发布时间】:2020-09-08 18:55:28
【问题描述】:

我正在尝试为我的慈善机构内部网站创建搜索功能,以帮助员工找到他们需要的应用程序和资源。到目前为止,我已经得到了它,但我无法将结果链接到我需要它们的地方。

这是我目前的代码,包含测试条目 Wikipedia 和 Google。

任何提示将不胜感激!

$(function () {
  $("#search")
    .autocomplete({
      //"autocomplete.php",
      source: [
        {
          id: "Wikipedia",
          value: "Wikipedia",
          label: "Wikipedia",
          img:
            "https://upload.wikimedia.org/wikipedia/commons/6/63/Wikipedia-logo.png",
        },

        {
          id: "Google",
          value: "Google",
          label: "Google",
          img:
            "https://www.buro210.nl/wp-content/uploads/2017/05/google-logo-icon-PNG-Transparent-Background-e1495781274381.png",
        },
      ],
      minLength: 1,
      select: function (event, ui) {
        /*
          var url = ui.item.id;
          if(url != '') {
            location.href = '...' + url;
          }
          */
      },
      html: true,
      open: function (event, ui) {
        $(".ui-autocomplete").css("z-index", 1000);
      },
    })
    .autocomplete("instance")._renderItem = function (ul, item) {
    return $(
      "<li><div><img src='" +
        item.img +
        "'><span>" +
        item.value +
        "</span></a></div></li>"
    ).appendTo(ul);
  };
});
.center {
  margin: auto;
  width: 45%;
  border: 0px solid #73AD21;
  padding: 10px;
  text-align: center;
}

#search{
	text-align: left;
	padding-right: 10px;
	padding-left: 10px;
	border: 1px solid #c2c2d6;
	width:100%;
	max-width: 400px;
  border-radius: 5px;
  height:25px;
	background-color: #e0e0eb;

}

.ui-menu img{
  width:40px;
  height:40px;
  border-radius: 8px;
}
.ui-menu li span{
 display: inline-block;
	font-size:15pt;
  padding:0px 0px 10px 10px;
  margin:0 0 10px 0 !important;
  white-space:nowrap;
	vertical-align: middle;
  border-radius: 30px;

}
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.css" rel="stylesheet"/>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>

<div class="center"><input type="text" id="search" placeholder="What are you looking for?"><img src="https://cdn1.iconfinder.com/data/icons/hawcons/32/698956-icon-111-search-512.png" alt="Search" style="height:38px;vertical-align: middle;"><br></div>

【问题讨论】:

    标签: javascript jquery hyperlink autocomplete jquery-ui-autocomplete


    【解决方案1】:

    你可以在数据集中添加一个 URI 属性,然后在select 函数中使用它,这是一个有效的 sn-p:

    $(function() {
    
          $("#search").autocomplete({
            source: //"autocomplete.php",
            [
              {id:"Wikipedia",
               value:"Wikipedia",
               label:"Wikipedia",
               uri: 'https://www.wikipedia.org/',
               img:"https://upload.wikimedia.org/wikipedia/commons/6/63/Wikipedia-logo.png"},
              
              {id:"Google",
               value:"Google",
               label:"Google",
               uri: 'https://www.google.com',
               img:"https://www.buro210.nl/wp-content/uploads/2017/05/google-logo-icon-PNG-Transparent-Background-e1495781274381.png"}
            ],
            minLength: 1,
            select: function(event, ui) {
              //console.log(ui.item);
              
              //var url = ui.item.uri;
              //if(url !== '') {
                location.href = ui.item.uri;
              //}
              
            },
            html: true, 
            open: function(event, ui) {
              $(".ui-autocomplete").css("z-index", 1000);
    
            }
          })
            .autocomplete( "instance" )._renderItem = function( ul, item ) {
            return $( "<li><div><img src='"+item.img+"'><span>"+item.value+"</span></a></div></li>" ).appendTo( ul );
          };
    
        });
    .center {
      margin: auto;
      width: 45%;
      border: 0px solid #73AD21;
      padding: 10px;
      text-align: center;
    }
    
    #search{
    	text-align: left;
    	padding-right: 10px;
    	padding-left: 10px;
    	border: 1px solid #c2c2d6;
    	width:100%;
    	max-width: 400px;
      border-radius: 5px;
      height:25px;
    	background-color: #e0e0eb;
    
    }
    
    .ui-menu img{
      width:40px;
      height:40px;
      border-radius: 8px;
    }
    .ui-menu li span{
     display: inline-block;
    	font-size:15pt;
      padding:0px 0px 10px 10px;
      margin:0 0 10px 0 !important;
      white-space:nowrap;
    	vertical-align: middle;
      border-radius: 30px;
    
    }
    <link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.css" rel="stylesheet"/>
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
    
    <div class="center"><input type="text" id="search" placeholder="What are you looking for?"><img src="https://cdn1.iconfinder.com/data/icons/hawcons/32/698956-icon-111-search-512.png" alt="Search" style="height:38px;vertical-align: middle;"><br></div>

    【讨论】:

    • 难以置信,谢谢!我在愚蠢地输入 URL 而不是 URi ....
    • 很高兴为您提供帮助,如果您觉得我的回答有用,请考虑 accepting answer :)
    猜你喜欢
    • 2011-09-27
    • 1970-01-01
    • 2015-06-17
    • 2016-08-07
    • 2014-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    相关资源
    最近更新 更多