谈层组件layer封装网页消息提示

原来的父层:

var editContactById = function(contactsId){
	if(contactsId!=null&&contactsId!=""&&contactsId!=undefined){
		layer.open({
			type: 2,
			title: '编辑客户联系方式',
			skin: 'layui-layer-lan',
			shadeClose: true,
			shade: 0.3,
			area: ['90%', '90%'],
			content: '${pageContext.request.contextPath}'+'/customer/vendercontactway/showedit?contactsId='+contactsId,
		}); 
	}	
};

原来的子层:

jQuery.ajax({
	type : 'POST',
	url : '${pageContext.request.contextPath}/customer/vendercontactway/editSave',
	cache : false,
	async : false,
	data : $('#form').serialize(),
	dataType : 'json',
	success : function(data) {
		if (data.statusCode == "200") {
			alert(data.message);   //原来的消息提示为网页提示
			var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
			parent.queryVenders(0);    //项目中实际为一个分页方法的调用,参数为0,意即更新到0页
			parent.layer.close(index);	
		} else {
			alert(data.message);
		}
	}
});

由子层代码可知,原来项目为网页提示。修改时想将其封装,然而在子层中加入代码:parent.layer.msg(data.mesage);之后,parent.layer.close(index);不起作用。
后来将分页方法转移到父层之后才完美实现。修改之后如下:

var editContactById = function(contactsId){
	if(contactsId!=null&&contactsId!=""&&contactsId!=undefined){
		layer.open({
			type: 2,
			title: '编辑客户联系方式',
			skin: 'layui-layer-lan',
			shadeClose: true,
			shade: 0.3,
			area: ['90%', '90%'],
			content: '${pageContext.request.contextPath}'+'/customer/vendercontactway/showedit?contactsId='+contactsId,
			end:function(){        //此处为新加入的方法,layer的iframe的end方法不管结果如何,都会调用
				queryVenders(0);   
			}
		}); 
	}	
};


你可能感兴趣的:(前端)