【layui小技巧】layer使用layer.msg方法时如何让用户点击遮罩层就关闭消息框?layer.msg点击消失

本文介绍如何使用Layer组件自定义消息框的关闭方式,通过设置time参数为0禁用自动关闭,并利用jQuery监听遮罩层点击事件实现手动关闭。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

layer是一个非常受欢迎的组件,好多大站都在使用,用它来弹出消息框既美观又方便。不过我最近在使用它的layer.msg方法时发生个问题,这个方法默认是3秒钟就消失,可是我不想让它自动消失,而是在用户点击消息框外的地方才消失,那该怎么办呢?

研究了下它的方法,发现可以通过传入参数time:0来设置不消失。即:

layer.msg("点击其他任意地方可关闭此对话框",{shade: 0.2,time:0});

这样的话确实是不消失了,可是用户无论点击那里它也不消失,这样可不行呀。于是又研究了下,原来这个方法可以返回一个对象,然后这个对象有个close方法。这样子,我们给遮罩层绑定个时间,在用户点击它的时候调用close方法即可。

通过查看遮罩层的元素发现它的class是layui-layer-shade,这样子我们编写下面代码解决:

$(document).on("click",".layui-layer-shade",function(){
	layer.close(myMsg);
});

不得不说layer真是强大,layui的其他组件也很强大,它提供了各种方法,你需要做的是根据需求动脑筋把它们像搭积木一样拼起来。

 

最后附上完整代码:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no">
	<script src="http://cdn.bootcss.com/jquery/1.12.3/jquery.min.js"></script>
	<script type="text/javascript" src="js/layer/layer.js"></script>
	<title>测试</title>
</head>
<style></style>
<body>
	
</body>
<script>
var myMsg;
myMsg=layer.msg("点击其他任意地方可关闭此对话框",{shade: 0.2,time:0});
$(document).on("click",".layui-layer-shade",function(){
	layer.close(myMsg);
});
</script>
</html>

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无·法

别打赏了,这C币又不能买咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值