layer插件实现在弹出层中弹出一警告提示并关闭弹出层的方法


Posted in Javascript onSeptember 24, 2019

昨天layer插件弹出层关闭问题弄的我直挠头,短短几行代码,用了我将近2个钟头才解决。我的使用场景是这样。在页面中用layer.open弹出一个层,在层内是微信支付二维码,客户扫码支付。支付成功后关闭此弹出层,并提示项目投递成功,然后再跳转到其他页面。为了监控微信二维码扫码支付是否成功。我利用了每隔三秒,查询下支付订单,查看支付订单的支付状态是否改变。在实际操作中由于使用的是location.href做跳转,然而跳转执行的非常慢,要10几秒才能成功,这不能忍。只能退而求其次,只是提示投递成功,然后关闭弹出层。由于关闭弹出层,及弹出警告提示的相关代码是在弹出层所在页面执行。

实际代码在执行过程当中遇到了各种问题。

$(function () {
      setInterval(GetDeliverProjectPayStatusSuccess, 3000);
    });
    function GetDeliverProjectPayStatusSuccess() {
      $.post("/ajax/GetDeliverProjectPayStatus.ashx", { OrderNo:"<%=Request.QueryString["OrderNo"] %>" }, function (data) {
        console.info(data);
 
        if (data == 1) {
  parent.layer.closeAll();
          layer.alert("项目投递成功");
 
        }
      });
    }

首先尝试的代码如上。先关闭弹出层,然后提示项目投递成功。这尝试的结果是,弹出层被关闭了。却没有任何提示。为什么这样执行,分析的结果是关闭弹出层,意味着弹出页面被关闭。弹出页面被关闭了。在弹出页面存在的layer.alert代码也就无从执行。然后这两行代码调换位置。可仍然是弹出层被关闭了。却没有提示。这个分析的原因是就像javascript中的alert与location.href一样。如果先alert然后在location.href,也不会执行alert,或者说其实有执行,但是由于系统执行的非常快,还没等你看到alert信息,浏览器已经跳转了。这里也是,还没等你看到项目投递成功的信息,弹出层已经关闭了。

又尝试了带回调函数的layer.alert,等客户点击layer.alert的确定按钮后再执行parent.layer.closeAll() 来关闭弹出层。然而残酷的现实是,由于这个是每隔三秒执行一次post请求,结果就是如果你点击关闭按钮过慢,它会每隔3秒弹出项目投递成功的提示。这怎么能用。难道你要求客户必须快速反应,点击关闭按钮?经过不断尝试,最终还是找到了一个方法解决了这个问题。

能够很好解决此问题的代码如下:

$(function () {
      setInterval(GetDeliverProjectPayStatusSuccess, 3000);
    });
    function GetDeliverProjectPayStatusSuccess() {
      $.post("/ajax/GetDeliverProjectPayStatus.ashx", { OrderNo:"<%=Request.QueryString["OrderNo"] %>" }, function (data) {
        console.info(data);
 
        if (data == 1) {
          parent.layer.alert("项目投递成功");
          var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
          parent.layer.close(index); //再执行关闭 
 
        }
      });
    }

以上这篇layer插件实现在弹出层中弹出一警告提示并关闭弹出层的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 赋值包含单引号双引号问题的解决方法
Feb 26 Javascript
基于javascript制作微信聊天面板
Aug 09 Javascript
Html中 IFrame的用法及注意点
Dec 22 Javascript
详解Jquery Easyui的验证扩展
Jan 09 Javascript
d3.js实现立体柱图的方法详解
Apr 28 Javascript
微信小程序 支付后台java实现实例
May 09 Javascript
vue-scroller记录滚动位置的示例代码
Jan 17 Javascript
JS 数组随机洗牌的实例代码
Sep 12 Javascript
vue实现登录页面的验证码以及验证过程解析(面向新手)
Aug 02 Javascript
功能完善的小程序日历组件的实现
Mar 31 Javascript
微信小程序swiper组件实现抖音翻页切换视频功能的实例代码
Jun 24 Javascript
element-ui封装一个Table模板组件的示例
Jan 04 Javascript
解决layer.prompt无效的问题
Sep 24 #Javascript
layer.prompt使文本框为空的情况下也能点击确定的方法
Sep 24 #Javascript
layui-table获得当前行的上/下一行数据的例子
Sep 24 #Javascript
通过实例了解JS 连续赋值
Sep 24 #Javascript
layui--select使用以及下拉框实现键盘选择的例子
Sep 24 #Javascript
JS防抖和节流实例解析
Sep 24 #Javascript
vue.js实现图书管理功能
Sep 24 #Javascript
You might like
web开发人员学习jQuery的6大理由及jQuery的优势介绍
2013/01/03 Javascript
jquery和javascript中如何将一元素的内容赋给另一元素
2014/01/09 Javascript
深入理解javascript严格模式(Strict Mode)
2014/11/28 Javascript
javascript实现数独解法
2015/03/14 Javascript
简介JavaScript中substring()方法的使用
2015/06/06 Javascript
Jquery操作cookie记住用户名
2016/03/29 Javascript
Bootstrap源码解读表单(2)
2016/12/22 Javascript
如何选择jQuery版本 1.x? 2.x? 3.x?
2017/04/01 jQuery
nodejs爬虫遇到的乱码问题汇总
2017/04/07 NodeJs
前端图片懒加载(lazyload)的实现方法(提高用户体验)
2017/08/21 Javascript
Angularjs自定义指令实现分页插件(DEMO)
2017/09/16 Javascript
利用nginx + node在阿里云部署https的步骤详解
2017/12/19 Javascript
vue父组件异步获取数据传给子组件的方法
2018/07/26 Javascript
JS通过位运算实现权限加解密
2018/08/14 Javascript
解决Angular4项目部署到服务器上刷新404的问题
2018/08/31 Javascript
JavaScript中Array方法你该知道的正确打开方法
2018/09/11 Javascript
JavaScript实现图片伪异步上传过程解析
2020/04/10 Javascript
js实现3D粒子酷炫动态旋转特效
2020/09/13 Javascript
python创建和删除目录的方法
2015/04/29 Python
Python 调用Java实例详解
2017/06/02 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
2018/01/31 Python
python使用webdriver爬取微信公众号
2018/08/31 Python
python3 map函数和filter函数详解
2019/08/26 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
Spartoo比利时:欧洲时尚购物网站
2017/12/06 全球购物
家乐福台湾线上购物网:Carrefour台湾
2020/09/15 全球购物
用C语言实现文件读写操作
2013/10/27 面试题
企业给企业的表扬信
2014/01/13 职场文书
消防安全汇报材料
2014/02/08 职场文书
在校大学生自我评价范文
2014/09/12 职场文书
2014年超市员工工作总结
2014/11/18 职场文书
典型事迹材料范文
2014/12/29 职场文书
2015年大学生党员承诺书
2015/04/27 职场文书
企业管理不到位检讨书
2019/06/27 职场文书
Mysql Show Profile
2021/04/05 MySQL
Python中的变量与常量
2021/11/11 Python