atjs参数有哪些?如何正确配置与使用?

at.js 是一个轻量级的 JavaScript 库,主要用于实现文本输入框中的自动补全功能,常见于社交平台、评论系统等需要@提及、标签补全的场景,其核心行为通过参数配置实现,合理设置参数能让开发者精准控制触发条件、数据交互、UI 展示等逻辑,以下从参数类型、作用场景及示例出发,详细解析 at.js 的关键参数。

atjs参数

at.js 参数详解

at.js 的参数通过初始化时传入对象配置,主要可分为触发控制、数据交互、UI 展示、回调函数四大类,具体参数如下表所示:

参数名 类型 默认值 作用说明 示例
trigger String 设置触发自动补全的字符,支持多字符(如 ‘#@’)或正则表达式。 trigger: '@'(触发@提及);trigger: '#@'(需输入#@才触发)
searchKey String ‘value’ 指定数据源中用于搜索的字段名,与后端返回数据字段对应。 若后端返回 {id: 1, name: '张三'},则 searchKey: 'name'
displayTpl String ‘

  • ${value}
  • ‘

    下拉列表项的 HTML 模板,支持通过 ${字段名} 插入数据。displayTpl: '<li><img src="${avatar}"/>${name}</li>'(显示头像和姓名)
    insertTplString‘${value}’选中补全项后插入输入框的内容模板,可自定义格式(如带链接、标签)。insertTpl: '@${name}(${id})'(插入@张三(1))
    delayNumber300输入触发字符后,发送搜索请求的延迟时间(毫秒),避免频繁请求。delay: 500(输入后等待500ms再请求)
    maxItemsNumber5下拉列表最大显示数量,超出部分滚动显示。maxItems: 10(最多显示10条补全项)
    minCharsNumber0触发补全所需的最小字符数(如输入@后需再输入1个字符才触发搜索)。minChars: 1(输入@后需再输入至少1个字符)
    hideDropdownOnSelectBooleantrue选中补全项后是否自动隐藏下拉框。hideDropdownOnSelect: false(选中后仍显示下拉框)
    highlightFirstBooleanfalse是否自动高亮下拉列表的第一项,支持回车键快速选中。highlightFirst: true(默认选中第一项)
    callbacksObject配置生命周期回调函数,包括请求前、请求后、选中后等钩子。见下方“回调函数参数说明”

    回调函数参数说明

    callbacks 是 at.js 最灵活的部分,通过不同回调函数可自定义数据请求、数据处理逻辑:

    atjs参数

    • beforeQuery(query, callback):发送请求前的回调,query 为当前输入内容,callback 控制是否请求(如 callback({results: []}) 可直接返回数据)。
      示例:过滤空请求

      callbacks: {
        beforeQuery: function (query, callback) {
          if (query.length < 2) callback({results: []}); // 输入不足2字符不请求
          else callback();
        }
      }
    • afterRender($ul):下拉列表渲染后的回调,$ul 为 jQuery 对象,可自定义样式或事件。
      示例:为列表项添加点击事件

      afterRender: function ($ul) {
        $ul.find('li').on('click', function () {
          console.log('选中项:', $(this).data('item'));
        });
      }
    • afterInsert(value, $input):选中项插入输入框后的回调,value 为插入内容,$input 为输入框元素。
      示例:插入后清空输入框(如标签场景)

      afterInsert: function (value, $input) {
        $input.val(''); // 插入后清空输入,继续输入新标签
      }

    参数组合应用示例

    实现一个带头像的@提及功能,后端返回 {id: 1, name: '张三', avatar: 'url'},配置如下:

    $('#input').atwho({
      at: '@',              // 触发字符为@
      searchKey: 'name',    // 搜索name字段
      displayTpl: '<li><img src="${avatar}" width="20"/>${name}</li>', // 显示头像和姓名
      insertTpl: '@${name}', // 插入@张三
      delay: 400,           // 400ms延迟请求
      maxItems: 8,          // 最多显示8条
      callbacks: {
        afterInsert: function (value, $input) {
          console.log('插入内容:', value); // 插入后打印日志
        }
      }
    });

    相关问答 FAQs

    Q1:at.js 参数中的 beforeQuery 和 afterQuery 有什么区别?
    A:beforeQuery 在发送请求前触发,可修改请求数据或直接返回本地数据(避免请求后端),适合缓存或过滤场景;afterQuery 在收到后端响应后触发,可对返回数据二次处理(如格式化、过滤空值),但无法阻止请求发送。beforeQuery 可判断本地是否有缓存数据,有则直接返回;afterQuery 可将后端返回的 {data: [...]} 提取为 [...] 供 at.js 渲染。

    atjs参数

    Q2:如何通过 at.js 参数实现自定义的@提及样式?
    A:通过 displayTpl 参数自定义 HTML 模板,结合 CSS 样式实现,设置 displayTpl: '<li class="mention-item"><span class="name">${name}</span><span class="id">#${id}</span></li>',并在 CSS 中定义 .mention-item { display: flex; align-items: center; padding: 5px; } .name { font-weight: bold; } .id { color: #999; margin-left: 5px; },即可实现带姓名和ID的@提及样式,同时通过 afterRender 回调可添加动态交互(如悬停高亮)。

    原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/47782.html

    赞 (0)
    酷番叔酷番叔
    上一篇 2025年10月29日 02:35
    下一篇 2025年10月29日 03:29

    相关推荐

    • 电脑方面的证书有哪些?考计算机等级证书好找工作吗

      在2026年,计算机类证书的核心价值已从“入门敲门砖”转向“高阶能力认证”,建议优先考取华为HCIE、阿里云ACP或红帽RHCE等具备实战属性的行业权威证书,而非仅持有基础的计算机二级或初级职称,随着人工智能与云计算技术的深度渗透,IT行业的用人标准发生了根本性变革,企业不再单纯看重学历背景,而是更关注候选人解……

      2026年6月24日
      30300
    • asp网店系统源码哪里获取?

      asp网店系统源码在电子商务蓬勃发展的今天,许多企业和个人希望快速搭建一个功能完善的在线商店,ASP(Active Server Pages)作为一种经典的服务器端脚本语言,因其简单易用和兼容性强的特点,仍被广泛应用于中小型电商平台的开发,本文将详细介绍ASP网店系统源码的核心功能、技术架构、优势以及如何选择和……

      2025年12月19日
      20700
    • 为什么选项不能单独使用?

      选项是命令的附属参数,不能脱离主命令单独执行,它们通过修改命令行为或提供额外信息来扩展功能,但本身不具备独立操作能力。

      2025年7月4日
      25900
    • 服务器安装云和安装服务器有什么区别,服务器怎么安装云系统?

      2026年服务器安装云化已从可选项变为默认项,对于绝大多数中小企业和个人开发者,直接选择云服务器而非物理服务器,可降低约40%初期硬件成本并缩短90%部署周期,云服务器安装的本质是将传统物理机的操作系统部署、环境配置与安全加固流程,迁移至云端控制台,通过镜像市场与自动化脚本实现分钟级交付,以下基于行业最新数据与……

      2026年8月21日
      7100
    • ASP网页点击率如何有效提升?

      在网站运营和数据分析中,asp网页点击率是一个核心指标,它直接反映了用户对网页内容的兴趣程度和网站设计的有效性,点击率(Click-Through Rate, CTR)通常定义为“点击次数/展示次数×100%”,通过这一数据,运营者可以优化页面布局、内容呈现及用户体验,从而提升整体转化效果,影响ASP网页点击率……

      2025年12月15日
      15100

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注

    联系我们

    400-880-8834

    在线咨询: QQ交谈

    邮件:HI@E.KD.CN

    关注微信