【笔记】若依不分离的$.modal.open()打开多个子窗口,关闭子窗口刷新父窗口问题

前言

如题所述,当前遇到的问题是:我在若依不分离版的一个普通HTML页面A使用

$.modal.open()打开一个子窗口B,且在这个子窗口里再次使用 这个函数打开一个子窗口C,这时的情况就是 A 界面有子窗口 B, B 窗口又有一个子窗口 C 。

图示:

【笔记】若依不分离的$.modal.open()打开多个子窗口,关闭子窗口刷新父窗口问题_第1张图片

【笔记】若依不分离的$.modal.open()打开多个子窗口,关闭子窗口刷新父窗口问题_第2张图片 

 【笔记】若依不分离的$.modal.open()打开多个子窗口,关闭子窗口刷新父窗口问题_第3张图片

 

OK,图示这个需求,就是要求我在关闭 C 窗口的时候刷新 B 窗口,而又不关闭 B 窗口。

解决过程

1、直接刷新父窗口(不能解决)

最开始我想到的是 

window.parent.location.reload()

直接刷新父窗口的方式来解决,但是它会直接把 B 窗口也给一起关闭,显然不是我想要的效果

2、通过  $.modal.open()  自带的方式(可以解决)

 点进这个open()函数里可以看到,若依这个open()函数内核其实是用的layui的layer.open()弹出层做的,再去layui的官网找弹出层相关的文档,发现了可以用回调函数的方式来解决,具体为:

a、将open()函数改造一下:如图下

【笔记】若依不分离的$.modal.open()打开多个子窗口,关闭子窗口刷新父窗口问题_第4张图片

b、既然需要 回调,就需要去 想要刷新的的窗口,也就是 B 窗口定义一个callback函数

【笔记】若依不分离的$.modal.open()打开多个子窗口,关闭子窗口刷新父窗口问题_第5张图片

c、 这样就可以实现在关闭C窗口后,都会做一个刷新的的操作,其原因如下图

【笔记】若依不分离的$.modal.open()打开多个子窗口,关闭子窗口刷新父窗口问题_第6张图片

 

总结:

多学习

你可能感兴趣的:(笔记,java,javascript)