讲师中心 微信公众号
AI工具推荐 视频效率加速

Layui日期组件laydate如何实现根据后端接口动态标记红点日期

轻辰君_9492

轻辰君_9492

发布时间:2026-06-10 06:44:47

|

669人浏览过

|

来源于php中文网

原创

laydate通过ready/change回调结合lay-ymd属性标记待红点日期:先用AJAX获取ISO格式日期数组,转为YYYYMMDD后,在回调中遍历匹配td并添加laydate-day-hint类实现红点。

laydate 怎么加载后端返回的待标记日期数组

laydate 本身不提供「红点标记」能力,但支持通过 ready 和 change 钩子 + 自定义 css 渲染节点。核心是:先用 ajax 拿到带红点的日期列表(如 ["2024-05-10", "2024-05-15"]),再在日历渲染完成后,遍历所有日期单元格,比对并添加红点 dom 元素。

注意:必须等 laydate 实例完全渲染完才操作 DOM,否则找不到目标节点。推荐在 ready 回调中执行标记逻辑,而非 change(后者每次切月都会触发,易重复插入)。

  • 后端接口建议返回 ISO 格式字符串数组(["2024-05-10"]),避免时区/格式歧义
  • 前端需缓存该数组(如挂到实例对象上),供后续切月时复用,避免反复请求
  • 日期比对前统一转为 YYYY-MM-DD 格式(用 laydate.now(0, 'YYYY-MM-DD') 或 new Date().toISOString().slice(0,10))

如何给指定日期单元格插入红点 DOM

laydate 渲染的日历表格中,每个日期 td 元素带有 lay-ymd 属性,值为 YYYYMMDD(如 20240510)。这是最可靠的选择器依据,比文本匹配或位置索引更稳定。

红点一般用绝对定位小圆点实现,CSS 可复用:

.laydate-day-hint {
  position: relative;
}
.laydate-day-hint::after {
  content: '';
  position: absolute;
  width: 6px;
  height: 6px;
  background: #ff5722;
  border-radius: 50%;
  top: 4px;
  right: 4px;
}

JS 插入逻辑示例:

const markedDates = ["2024-05-10", "2024-05-15"];
const ymdList = markedDates.map(d => d.replace(/-/g, ''));

// 在 ready 回调里执行
ready: function(elem, date, endDate) {
  ymdList.forEach(ymd => {
    const td = elem.next('.layui-laydate-main').find(`[lay-ymd="${ymd}"]`);
    if (td.length && !td.hasClass('laydate-day-hint')) {
      td.addClass('laydate-day-hint');
    }
  });
}

切换年月时红点消失?怎么保持标记同步

laydate 切换年月会销毁并重建整个日历 DOM,所以之前加的 class 或 ::after 会丢失。不能只靠 ready 一次执行 —— 必须每次渲染都重打标记。

深蓝色网站后台管理系统layui框架模板-AdminPro
深蓝色网站后台管理系统layui框架模板-AdminPro

一款深蓝色网站后台管理系统layui框架模板

下载
  • 把标记逻辑封装成独立函数(如 markDays(elem, markedDates))
  • 在 ready 和 change 两个回调里都调用它(change 参数含当前年月,可用来过滤仅渲染当月数据,提升性能)
  • 如果后端支持按年月分页查询,可在 change 里动态拉取当月标记数据,避免一次性加载过大数组

注意:change 触发时,DOM 已更新,但尚未完成动画,建议加 setTimeout(..., 0) 确保节点就绪。

为什么用 lay-ymd 而不用日期文本匹配

直接读 td 文本内容(如 $(td).text() === "10")极易出错:同一天在不同月份可能重复出现;中文版可能带「今日」标红;移动端适配时文本可能被截断或换行。

lay-ymd 是 laydate 内部生成的唯一、无歧义标识,且稳定存在于所有版本(v2.8+ 均支持)。只要不手动删改该属性,就是最安全的锚点。

额外提醒:若后端返回的是时间戳或毫秒数,务必在前端统一转成 YYYYMMDD 字符串再比对,别用 new Date().getDate() 去提取日份——跨月时会漏掉 1 号以外的日期。

热门AI工具

更多
Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2403

2023.08.11

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

6250

2024.03.19

后端的主要工作内容介绍
后端的主要工作内容介绍

后端是应用程序的服务端部分,负责核心任务,如数据库交互、业务逻辑处理和响应客户端请求。想了解更多后端的相关内容,可以阅读本专题下面的文章。

5606

2024.03.19

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

3108

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

4689

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

3749

2025.12.29

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

426

2026.01.19

PixTV官网入口地址合集
PixTV官网入口地址合集

本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。

40

2026.10.10

Kratos框架HTTP与gRPC服务开发教程
Kratos框架HTTP与gRPC服务开发教程

本专题围绕Kratos框架双协议服务开发,涵盖HTTP路由与处理器编写、参数获取、gRPC服务实现与客户端调用、metadata上下文传递、encoding编解码注册、统一响应封装、超时控制与流式响应实现方法。

20

2026.10.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
ThinkPHP配置开发与CMS后台实战
ThinkPHP配置开发与CMS后台实战

共87课时 | 12.8万人学习

第二十三期_综合实战
第二十三期_综合实战

共89课时 | 11万人学习

Layui 快速入门精讲
Layui 快速入门精讲

共5课时 | 1.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn