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 相关文章推荐
JQueryEasyUI datagrid框架的进阶使用
Apr 08 Javascript
理解JAVASCRIPT中hasOwnProperty()的作用
Jun 05 Javascript
12种不宜使用的Javascript语法整理
Nov 04 Javascript
jQuery的animate函数实现图文切换动画效果
May 03 Javascript
简单谈谈javascript中的变量、作用域和内存问题
Aug 30 Javascript
微信小程序 欢迎页面的制作(源码下载)
Jan 09 Javascript
微信小程序日历组件calendar详解及实例
Jun 08 Javascript
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
Oct 31 Javascript
vue-cli 引入、配置axios的方法
May 08 Javascript
利用Node.js批量抓取高清妹子图片实例教程
Aug 02 Javascript
JS代码触发事件代码实例
Jan 02 Javascript
React Fragment介绍与使用详解
Nov 11 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二维数组排序方法(array_multisort usort)
2013/12/25 PHP
ThinkPHP页面跳转success与error方法概述
2014/06/25 PHP
PH P5.2至5.5、5.6的新增功能详解
2014/07/14 PHP
php实现的发送带附件邮件类实例
2014/09/22 PHP
PHP文件上传类实例详解
2016/04/08 PHP
PHP+swoole+linux实现系统监控和性能优化操作示例
2019/04/15 PHP
初学JavaScript_03(ExtJs Grid的简单使用)
2008/10/02 Javascript
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
2010/11/28 Javascript
类似php的js数组的in_array函数自定义方法
2013/12/27 Javascript
jquery中获得元素尺寸和坐标的方法整理
2014/05/18 Javascript
详解AngularJS中的作用域
2015/06/17 Javascript
JavaScript、jQuery与Ajax的关系
2016/01/24 Javascript
JavaScript代码性能优化总结篇
2016/05/15 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
2016/06/21 Javascript
JS中正则表达式全局匹配模式 /g用法详解
2017/04/01 Javascript
Vue.js实现可配置的登录表单代码详解
2018/03/29 Javascript
浅谈vue 单文件探索
2018/09/05 Javascript
vue项目开发中setTimeout等定时器的管理问题
2018/09/13 Javascript
从零到一详聊创建Vue工程及遇到的常见问题
2019/04/25 Javascript
基于Node.js搭建hexo博客过程详解
2019/06/25 Javascript
原生JavaScript实现留言板
2021/01/10 Javascript
python实现telnet客户端的方法
2015/04/15 Python
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
python Pandas库基础分析之时间序列的处理详解
2019/07/13 Python
python numpy 矩阵堆叠实例
2020/01/17 Python
keras K.function获取某层的输出操作
2020/06/29 Python
基于css3 animate制作绚丽的动画效果
2015/11/24 HTML / CSS
龟牌英国商店:Turtle Wax Brand Store UK
2019/07/02 全球购物
俄罗斯三星品牌商店:GalaxyStore
2020/11/04 全球购物
中间件分为哪几类
2016/09/18 面试题
介绍一下Mysql的存储引擎
2015/02/12 面试题
个人自我剖析材料
2014/02/07 职场文书
测绘专业大学生职业生涯规划书
2014/02/10 职场文书
六一儿童节活动总结
2014/08/27 职场文书
2014年人民警察入党思想汇报
2014/10/12 职场文书
Redis基本数据类型Set常用操作命令
2022/06/01 Redis