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 相关文章推荐
两个select之间option的互相添加操作(jquery实现)
Nov 12 Javascript
js如何实现设计模式中的模板方法
Jul 23 Javascript
js对table的td进行相同内容合并示例详解
Dec 27 Javascript
js 判断图片是否加载完以及实现图片的预下载
Aug 14 Javascript
JQuery的ON()方法支持的所有事件罗列
Feb 28 Javascript
javascript函数式编程程序员的工具集
Oct 11 Javascript
灵活使用数组制作图片切换js实现
Jul 28 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
Sep 06 Javascript
Angular ng-repeat指令实例以及扩展部分
Dec 26 Javascript
React学习之JSX与react事件实例分析
Jan 06 Javascript
js实现鼠标拖拽div左右滑动
Jan 15 Javascript
JavaScript原型链详解
Nov 07 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
PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法
2011/09/09 PHP
php session劫持和防范的方法
2013/11/12 PHP
php将字符串转换成16进制的方法
2015/03/17 PHP
一个完整的PHP类包含的七种语法说明
2015/06/04 PHP
PHP实现文件上传功能实例代码
2017/05/18 PHP
不能再简单的无闪刷新验证码原理很简单
2007/11/05 Javascript
php+js实现倒计时功能
2014/06/02 Javascript
一个支付页面DEMO附截图
2014/07/22 Javascript
jQuery简单实现遍历数组的方法
2015/04/14 Javascript
JS实现仿苹果底部任务栏菜单效果代码
2015/08/28 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
2016/07/22 Javascript
Vue实现购物车功能
2017/04/27 Javascript
微信小程序request出现400的问题解决办法
2017/05/23 Javascript
vue中的mvvm模式讲解
2019/01/31 Javascript
Vue-input框checkbox强制刷新问题
2019/04/18 Javascript
pm2发布node配置文件ecosystem.json详解
2019/05/15 Javascript
微信小程序—setTimeOut定时器的问题及解决
2019/07/26 Javascript
小程序跨页面交互的作用与方法详解
2020/01/07 Javascript
如何在 ant 的table中实现图片的渲染操作
2020/10/28 Javascript
Nuxt的路由配置和参数传递方式
2020/11/06 Javascript
[57:31]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第一场 2月1日
2021/03/11 DOTA
[10:05]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD 选手采访
2021/03/11 DOTA
用Python程序抓取网页的HTML信息的一个小实例
2015/05/02 Python
Python3enumrate和range对比及示例详解
2019/07/13 Python
使用Python自动生成HTML的方法示例
2019/08/06 Python
django创建简单的页面响应实例教程
2019/09/06 Python
Python实现病毒仿真器的方法示例(附demo)
2020/02/19 Python
德国领先的大尺码和超大尺码男装在线零售商:Bigtex
2019/06/22 全球购物
大学生毕业鉴定
2014/01/31 职场文书
市场营销毕业生自荐信范文
2014/04/01 职场文书
提拔干部考察材料
2014/05/26 职场文书
个人授权委托书样本
2014/09/13 职场文书
县长群众路线对照检查材料思想汇报
2014/10/02 职场文书
2014年工商所工作总结
2014/12/09 职场文书
2015年妇幼卫生工作总结
2015/05/23 职场文书
无故旷工检讨书
2015/08/15 职场文书