微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Jquery Typeahead 的结果列表底部添加帮助文本?

如何解决如何在 Jquery Typeahead 的结果列表底部添加帮助文本?

我使用 jquery typeahead 构建了一个自动完成功能,因为它有很多选项,而且大多数都符合我的要求。

但我想在结果列表的底部添加一些帮助文本,而不是它的认选项,如下所示:

enter image description here

我检查了它的元素并用纯 Jquery 脚本插入它,但它没有按预期工作。

$.typeahead({    
  input: '.js-typeahead-country_v1',    order: "desc",    source: {        
    data: [            "Afghanistan","Albania","Algeria","Andorra","Angola","Antigua and Barbuda",            "Argentina","Armenia","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh",            "Barbados","Belarus","Belgium","Belize","Benin","Bermuda","Bhutan","Bolivia",            "Bosnia and Herzegovina","Botswana","Brazil","Brunei","Bulgaria","Burkina Faso","Burma",            "Burundi","Cambodia","Cameroon","Canada","Cape Verde","Central African Republic","Chad",            "Chile","China","Colombia","Comoros","Congo,Democratic Republic",Republic of the",            "Costa Rica","Cote d'Ivoire","Croatia","Cuba","Cyprus","Czech Republic","Denmark","Djibouti",            "Dominica","Dominican Republic","East Timor","Ecuador","Egypt","El Salvador",            "Equatorial Guinea","Eritrea","Estonia","Ethiopia","Fiji","Finland","France","Gabon",            "Gambia","Georgia","Germany","Ghana","Greece","Greenland","Grenada","Guatemala","Guinea",            "Guinea-Bissau","Guyana","Haiti","Honduras","Hong Kong","Hungary","Iceland","India",            "Indonesia","Iran","Iraq","Ireland","Israel","Italy","Jamaica","Japan","Jordan",            "Kazakhstan","Kenya","Kiribati","Korea,north",South","Kuwait","Kyrgyzstan","Laos",            "Latvia","Lebanon","Lesotho","Liberia","Libya","Liechtenstein","Lithuania","Luxembourg",            "Macedonia","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Marshall Islands",            "Mauritania","Mauritius","Mexico","Micronesia","Moldova","Mongolia","Morocco","Monaco",            "Mozambique","Namibia","Nauru","Nepal","Netherlands","New Zealand","Nicaragua","Niger",            "Nigeria","norway","Oman","Pakistan","Panama","Papua New Guinea","Paraguay","Peru",            "Philippines","Poland","Portugal","Qatar","Romania","Russia","Rwanda","Samoa","San Marino",            "Sao Tome","Saudi arabia","Senegal","Serbia and Montenegro","Seychelles","Sierra Leone",            "Singapore","Slovakia","Slovenia","Solomon Islands","Somalia","South Africa","Spain",            "Sri Lanka","Sudan","Suriname","Swaziland","Sweden","Switzerland","Syria","Taiwan",            "Tajikistan","Tanzania","Thailand","Togo","Tonga","Trinidad and Tobago","Tunisia","Turkey",            "Turkmenistan","Uganda","Ukraine","United arab Emirates","United Kingdom","United States",            "Uruguay","Uzbekistan","Vanuatu","Venezuela","Vietnam","Yemen","Zambia","Zimbabwe"        ]    
  },    callback: {        
    onInit: function(node) {            
      console.log('Typeahead Initiated on ' + node.selector);        
    }    
  }
});

$('.typeahead__result').append('<span class="help">Use up/down arrow keys to navigate. Press Enter to select</span>')
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-typeahead/2.11.0/jquery.typeahead.min.js" integrity="sha512-Rc24PGD2NTEGNYG/EMB+jcFpAltU9svgPcG/73l1/5M6is6gu3Vo1uVqyaNWf/sXfKyI0l240iwX9wpm6HE/Tg==" crossorigin="anonymous"></script>

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-typeahead/2.11.0/jquery.typeahead.css" integrity="sha512-AQG3JVpy/h0TsLsFs/HDLjnkq1ih9uUliGGXdQ7LQcGQt7GD+1b7HWOQ2oeCH7tKdtrfRg75CGApafi+//9Dbw==" crossorigin="anonymous" />


<div class="typeahead__container">

  <div class="typeahead__field">

    <div class="typeahead__query">
      <input class="js-typeahead-country_v1" name="country_v1[query]" placeholder="Search" autocomplete="off">
    </div>

    <div class="typeahead__button">

    </div>
  </div>
</div>

因此,有什么方法可以像图片中那样正确地实现此帮助文本?谢谢

解决方法

您可以使用 onLayoutBuiltBefore 回调在列表显示之前对其进行修饰。在本例中,我将它添加到列表的末尾,并使用 .help 类进行样式设置。

$.typeahead({
  input: '.js-typeahead-country_v1',order: "desc",source: {
    data: ["Afghanistan","Albania","Algeria","Andorra","Angola","Antigua and Barbuda","Argentina","Armenia","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bermuda","Bhutan","Bolivia","Bosnia and Herzegovina","Botswana","Brazil","Brunei","Bulgaria","Burkina Faso","Burma","Burundi","Cambodia","Cameroon","Canada","Cape Verde","Central African Republic","Chad","Chile","China","Colombia","Comoros","Congo,Democratic Republic",Republic of the","Costa Rica","Cote d'Ivoire","Croatia","Cuba","Cyprus","Czech Republic","Denmark","Djibouti","Dominica","Dominican Republic","East Timor","Ecuador","Egypt","El Salvador","Equatorial Guinea","Eritrea","Estonia","Ethiopia","Fiji","Finland","France","Gabon","Gambia","Georgia","Germany","Ghana","Greece","Greenland","Grenada","Guatemala","Guinea","Guinea-Bissau","Guyana","Haiti","Honduras","Hong Kong","Hungary","Iceland","India","Indonesia","Iran","Iraq","Ireland","Israel","Italy","Jamaica","Japan","Jordan","Kazakhstan","Kenya","Kiribati","Korea,North",South","Kuwait","Kyrgyzstan","Laos","Latvia","Lebanon","Lesotho","Liberia","Libya","Liechtenstein","Lithuania","Luxembourg","Macedonia","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Marshall Islands","Mauritania","Mauritius","Mexico","Micronesia","Moldova","Mongolia","Morocco","Monaco","Mozambique","Namibia","Nauru","Nepal","Netherlands","New Zealand","Nicaragua","Niger","Nigeria","Norway","Oman","Pakistan","Panama","Papua New Guinea","Paraguay","Peru","Philippines","Poland","Portugal","Qatar","Romania","Russia","Rwanda","Samoa","San Marino","Sao Tome","Saudi Arabia","Senegal","Serbia and Montenegro","Seychelles","Sierra Leone","Singapore","Slovakia","Slovenia","Solomon Islands","Somalia","South Africa","Spain","Sri Lanka","Sudan","Suriname","Swaziland","Sweden","Switzerland","Syria","Taiwan","Tajikistan","Tanzania","Thailand","Togo","Tonga","Trinidad and Tobago","Tunisia","Turkey","Turkmenistan","Uganda","Ukraine","United Arab Emirates","United Kingdom","United States","Uruguay","Uzbekistan","Vanuatu","Venezuela","Vietnam","Yemen","Zambia","Zimbabwe"]
  },callback: {
    onLayoutBuiltBefore: function(node,query,result,resultHtmlList) {
      if (resultHtmlList) {
        resultHtmlList.append(
          $('<li/>',{
            "text": "Use up/down arrow keys to navigate. Press Enter to select","class": "help"
          })
        );
      }
      return resultHtmlList;
    }
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-typeahead/2.11.0/jquery.typeahead.min.js" integrity="sha512-Rc24PGD2NTEGNYG/EMB+jcFpAltU9svgPcG/73l1/5M6is6gu3Vo1uVqyaNWf/sXfKyI0l240iwX9wpm6HE/Tg==" crossorigin="anonymous"></script>

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-typeahead/2.11.0/jquery.typeahead.css" integrity="sha512-AQG3JVpy/h0TsLsFs/HDLjnkq1ih9uUliGGXdQ7LQcGQt7GD+1b7HWOQ2oeCH7tKdtrfRg75CGApafi+//9Dbw==" crossorigin="anonymous" />


<div class="typeahead__container">

  <div class="typeahead__field">

    <div class="typeahead__query">
      <input class="js-typeahead-country_v1" name="country_v1[query]" placeholder="Search" autocomplete="off">
    </div>

    <div class="typeahead__button">

    </div>
  </div>
</div>

,
$( "#find-subj" ).autocomplete({
    source: availableTags
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?