layui layer怎么判断当前点击的是确定还是右上角关闭叉

千宇同学_5078

千宇同学_5078

2026-10-02

803人浏览

原创

layui layer弹窗中,右上角×与esc统一走cancel回调,「确定」走第三个参数回调,「取消」按钮走第四个参数回调;cancel中无法直接区分×与遮罩关闭,仅当shadeclose:false且未主动调用layer.close时可默认视为×触发。

layui layer怎么判断当前点击的是确定还是右上角关闭叉

在使用 layui layer 弹窗时,需要区分用户点击的是「确定」按钮还是右上角关闭 ×,以便执行不同逻辑(比如保存数据 or 清理临时状态),不能靠事件冒泡监听 DOM 元素,必须依赖 layer 自身的回调机制和参数特征。

通过 cancel 与 yes 回调自然分离行为

layer.confirm 默认提供三个可绑定的回调函数:第三个参数是「确定」按钮回调,第四个参数是「取消」按钮回调,而右上角 × 触发的是独立的 cancel 配置项——三者互不干扰,天然可区分。

这一步操作起来很简单,直接把业务逻辑写进对应回调里就行。

右上角 × 和按 ESC 键统一走 cancel;点击弹窗内的「取消」按钮走第四个参数回调;点击「确定」按钮走第三个参数回调。三者触发路径完全隔离,不会混淆。

在 cancel 回调中识别关闭来源(仅限 layer.open)

对于 layer.open 类型弹窗,cancel 回调接收两个参数:index(当前层索引)和 layero(DOM 节点对象)。但 layui 不提供 source 属性来标识点击位置,所以不能靠参数直接判断是点了 × 还是点了遮罩。

不过,若配置了 shadeClose: true,点击遮罩也会触发 cancel —— 此时你无法区分来源,这是 layui 的设计限制。

真正能确定是右上角 × 的唯一可靠信号是:closeBtn 值为 1(默认)且未禁用按钮,同时 cancel 被触发,且你没在其他地方主动调 layer.close(index)。

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

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

下载

用 DOM 事件辅助判断(慎用,仅作补充)

方法一:给右上角关闭按钮加自定义 data 属性

在 layer.open 后立即执行:$(layero).find('.layui-layer-close').attr('data-trigger', 'x-btn');

然后在 cancel 回调开头读取:const trigger = $(layero).find('.layui-layer-close').data('trigger'); if (trigger === 'x-btn') { /* 确实点了 × */ }。

注意:此方式依赖 layer DOM 结构稳定,【layer 版本升级可能破坏 .layui-layer-close 选择器】,生产环境不推荐作为主判断逻辑。

方法二:监听 layero 上的 click 事件并委托到关闭按钮

在 open 成功后(即 success 回调中)绑定:$(layero).on('click', '.layui-layer-close', function() { console.log('明确捕获 × 点击'); });

这个监听只响应真实点击,不触发 cancel,可作为日志或副作用补充,但不能替代 cancel 做主流程控制。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
ajax教程
ajax教程

php中文网为大家带来ajax教程合集,Ajax是一种用于创建快速动态网页的技术。通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。php中文网还为大家带来ajax的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

2023.06.14

2500

4

ajax中文乱码解决方法
ajax中文乱码解决方法

ajax中文乱码解决方法有设置请求头部的字符编码、在服务器端设置响应头部的字符编码和使用encodeURIComponent对中文进行编码。本专题为大家提供ajax中文乱码相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.31

340

5

ajax传递中文乱码怎么办
ajax传递中文乱码怎么办

ajax传递中文乱码的解决办法:1、设置统一的编码方式;2、服务器端编码;3、客户端解码;4、设置HTTP响应头;5、使用JSON格式。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.11.15

2333

5

ajax网站有哪些
ajax网站有哪些

使用ajax的网站有谷歌、维基百科、脸书、纽约时报、亚马逊、stackoverflow、twitter、hacker news、shopify和basecamp等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2024.09.24

1141

6

LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

20

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

0

14

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

2026.09.30

0

12

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

2026.09.30

20

26

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

2026.09.29

20

15

热门下载

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

精品课程

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

共87课时 | 12.6万人学习

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

共89课时 | 10.8万人学习

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

共5课时 | 1.6万人学习