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

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

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

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

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

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

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

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

不得不说layer真是强大,layui的其他组件也很强大,它提供了各种方法,你需要做的是根据需求动脑筋把它们像搭积木一样拼起来。可惜这个框架在2021年下架了不在更新了,作者让大家拥抱vue的怀抱,迎接vue的时代,哎。

最后附上完整代码:

<!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>


目录
相关文章
|
6月前
input点击后placeholder中的提示消息消失
input点击后placeholder中的提示消息消失
Layui 内置方法 - layer.confirm(询问框)
Layui 内置方法 - layer.confirm(询问框)
846 0
Layui 内置方法 - layer.msg(提示框)
Layui 内置方法 - layer.msg(提示框)
576 0
|
4月前
element UI【解决方案】消息弹框被对话框遮挡($message消息框被dialog或$alert遮罩)
element UI【解决方案】消息弹框被对话框遮挡($message消息框被dialog或$alert遮罩)
171 3
|
4月前
|
JavaScript
vue element MessageBox.prompt this.$prompt组件禁止显示右上角关闭按钮,取消按钮,及点击遮罩层关闭
vue element MessageBox.prompt this.$prompt组件禁止显示右上角关闭按钮,取消按钮,及点击遮罩层关闭
71 0
|
12月前
layer弹框在实际项目中的一些应用
layer弹框在实际项目中的一些应用
56 0
|
12月前
layer弹框
layer弹框
60 0
|
12月前
layer小提示弹框验证
layer小提示弹框验证
50 0
|
12月前
layer 弹出框
layer 弹出框
Layui 内置方法 - layer.setTop(置顶当前窗口)
Layui 内置方法 - layer.setTop(置顶当前窗口)
207 0