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 相关文章推荐
斜45度寻路实现函数
Aug 20 Javascript
用js写的一个路由(简单实例)
Sep 24 Javascript
微信小程序 POST请求(网络请求)详解及实例代码
Nov 16 Javascript
easyui 中的datagrid跨页勾选问题的实现方法
Jan 18 Javascript
vue2.0使用swiper组件实现轮播效果
Nov 27 Javascript
微信小程序表单验证功能完整实例
Dec 01 Javascript
ES6 中可以提升幸福度的小功能
Aug 06 Javascript
js+HTML5 canvas 实现简单的加载条(进度条)功能示例
Jul 16 Javascript
js实现漂亮的星空背景
Nov 01 Javascript
Vue的click事件防抖和节流处理详解
Nov 13 Javascript
vue中的可拖拽宽度div的实现示例
Apr 08 Vue.js
vue实现input输入模糊查询的三种方式
Aug 14 Vue.js
解决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配置心得包含MYSQL5乱码解决
2006/11/20 PHP
CI(CodeIgniter)框架配置
2014/06/10 PHP
thinkphp特殊标签用法概述
2014/11/24 PHP
PHP中set_include_path()函数相关用法分析
2016/07/18 PHP
Javascript实例教程(19) 使用HoTMetal(4)
2006/12/23 Javascript
用js实现控件的隐藏及style.visibility的使用
2013/06/14 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
2014/01/15 Javascript
60行js代码实现俄罗斯方块
2015/03/31 Javascript
理解javascript封装
2016/02/23 Javascript
详解原生JavaScript实现jQuery中AJAX处理的方法
2016/05/10 Javascript
基于javascript实现最简单的选项卡切换效果
2016/05/16 Javascript
Bootstrap表单Form全面解析
2016/06/13 Javascript
VueJs路由跳转——vue-router的使用详解
2017/01/10 Javascript
jQuery对table表格进行增删改查
2020/12/22 Javascript
数组Array的排序sort方法
2017/02/17 Javascript
关于jquery layui弹出层的使用方法
2018/04/21 jQuery
vue webpack实用技巧总结
2018/04/24 Javascript
vue项目实现表单登录页保存账号和密码到cookie功能
2018/08/31 Javascript
JS中FormData类实现文件上传
2020/03/27 Javascript
小程序中的箭头函数的具体使用
2020/06/19 Javascript
JavaScript如何判断对象有某属性
2020/07/03 Javascript
Js利用正则表达式去除字符串的中括号
2020/11/23 Javascript
[48:27]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
详解Python中time()方法的使用的教程
2015/05/22 Python
使用Python下载歌词并嵌入歌曲文件中的实现代码
2015/11/13 Python
网站渗透常用Python小脚本查询同ip网站
2017/05/08 Python
Python+PIL实现支付宝AR红包
2018/02/09 Python
Python实现随机漫步功能
2018/07/09 Python
Python实现的IP端口扫描工具类示例
2019/02/15 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
python的链表基础知识点
2020/09/13 Python
video下autoplay属性无效的解决方法(添加muted属性)
2020/05/19 HTML / CSS
linux面试题参考答案(7)
2014/07/24 面试题
《高尔基和他的儿子》教学反思
2014/04/09 职场文书
院系推荐意见
2015/06/05 职场文书
Python中OpenCV实现查找轮廓的实例
2021/06/08 Python