jQuery MiniUI

 找回密码
 立即注册
查看: 2005|回复: 6
打印 上一主题 下一主题

tab切换事件 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2016-9-21 09:19:58 |只看该作者 |倒序浏览
想做一个面板切换前的事件:当前面板有数据更改,更换面板时需提示:有更改的数据,是否需要保存?如果需要,则保存当前页面后切换至之前点击的面板;如果不需要则直接更换到点击的面板;

API中提供了一个onbeforeactivechanged事件,是面板切换之前事件,但是不管是否保存当前数据,都会先跳到点击的页面上去,这个怎么解决?我想先选择结果之后再跳转,下面给出代码和效果图:代码:

function onbeforeactivechanged(){
                        if (grid_holiday.getChanges().length > 0) {
                                mini.confirm("有增删改的数据未保存,是否需要保存?","提示", function(status){
                                        if(status=="ok"){
                                                onSave(1,grid_holiday);
                                        }else{
                                                if(grid_holiday.getRow(0).name == "New Row"){
                                                        grid_holiday.removeRow(grid_holiday.getRow(0));
                                                }
                                                grid_holiday.accept();//清除所有行编辑痕迹
                                        }
                                });
            }

}

效果图:
1、先新增一条数据,并不保存:

2、然后更换面板,先跳转再提示:

附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

沙发
发表于 2016-9-21 09:43:49 |只看该作者
1 这个事件里e.cancel=true就是阻止切换
2 mini.comfirm无法像原生的confirm那样阻塞代码,你这里需要用原生的
confirm("...", "...", function (action) {
                if (action == "ok") e.cancel = true;
            })

Rank: 2

板凳
发表于 2016-9-21 16:18:16 |只看该作者
felt 发表于 2016-9-21 09:43
1 这个事件里e.cancel=true就是阻止切换
2 mini.comfirm无法像原生的confirm那样阻塞代码,你这里需要用原 ...

但是在这里直接先cancel阻止之后,我点击确定或者取消之后就不能再跳转到需要跳转的页面了吧?

Rank: 8Rank: 8

地板
发表于 2016-9-21 16:39:49 |只看该作者
flower 发表于 2016-9-21 16:18
但是在这里直接先cancel阻止之后,我点击确定或者取消之后就不能再跳转到需要跳转的页面了吧? ...

是的

Rank: 2

5#
发表于 2016-9-21 17:14:25 |只看该作者
felt 发表于 2016-9-21 16:39
是的

那有没有办法可以实现我说的需求呢?先弹出提示框,点击之后再进行面板的切换呢?

Rank: 8Rank: 8

6#
发表于 2016-9-21 17:15:34 |只看该作者
flower 发表于 2016-9-21 17:14
那有没有办法可以实现我说的需求呢?先弹出提示框,点击之后再进行面板的切换呢? ...

用原生的confirm
js模拟的弹出都无法阻塞代码

Rank: 2

7#
发表于 2016-9-21 17:45:58 |只看该作者
felt 发表于 2016-9-21 17:15
用原生的confirm
js模拟的弹出都无法阻塞代码

ok~可以解决了,只是用不到miniui的样式了   谢谢哦~

Archiver|普加软件

GMT+8, 2024-10-3 22:13 , Processed in 1.044671 second(s), 11 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部