raycom框架中弹出组件(RayDialog),点击确认后,弹出框不消失问题分析 raycom

lake 2018-10-24 1525

问题:

       在弹出提示框中点击确认按钮,弹出框不消失

分析:

       弹出框的处理逻辑是:

           1)弹出提示框时,在触发其弹出的控件上绑定一个监听事件,事件的操作内容是关闭当前的提示框,该事件会监听确认按钮发出的事件(event)动作

           2)确认按钮被点击时首先会执行弹出框绑定的回调函数,执行完回调函数后。发出一个按钮事件,该事件被第一步的控件所监听     

       在本例问题中,弹出确认后会刷新table,但是弹出组件本身是由table中的控件(一个图标URL)触发。点击确认按钮后,会先执行回调函数,由于弹出组件的回调函数中对table内的控件进行了刷新,即组件关联的控件也被刷新,造成回调函数执行完毕后,确认按钮发出的时间通知无法被触发,进而弹出框不能被关闭。

解决方案:

        在回调函数的首行,增加关闭弹出框的方法,即在刷新table前先关闭弹出框,然后再刷新table。相关代码如下:


        出错代码:

success:function(){
	rayDialog("操作成功!",function(){
		table.ajax.reload();
	});
},

       修正后代码:

success:function(){
	rayDialog("操作成功!",function(){
	        layer.closeAll('dialog');
		table.ajax.reload();
	});
},

说明:

        在使用弹出框,弹出页面时,如果通过js关闭产生异常,优先考虑其挂在控件是否发生了变化,造成事件监听失效。

最后于 2019-6-3 被lake编辑 ,原因:
最新回复 (0)
全部楼主
返回