layui 封装集成到 jquery 的工具类

分享一个自己写的方便操作layui的jquery工具类

文档

jquery.layui.util.js

1.tableGetCheckIds
	简介
		获取layui table 所有选中的id
	参数
		tableId(table组件的id)
	返回值
		选中的所有id以","结尾的字符串
	用法
		$.lay.tableGetCheckIds("test");
2.reloadAllIframe
	简介
		刷新基础父窗口对象的所有子iframe
	参数
		无
	返回值
		无
	用法
		$.lay.reloadAllIframe();
3.reloadUseIframe
	简介
		刷新使用者的iFame
	参数
		无
	返回值
		无
	用法
		$.lay.reloadUseIframe();
4.reloadIframe
	简介
		刷新当前的iframe
	参数
		无
	返回值
		无
	用法
		$.lay.reloadUseIframe();
5.addLayVerify
	简介
		向指定对象添加lay-verify的验证元素,类似于jquery的addClass的用法
	参数
		$dom(元素jquery对象),verify(验证字符串)
	返回值
		无
	用法
		$.lay.addLayVerify($("input"),phone);
6.removeLayVerify
	简介
		向指定对象移除lay-verify的验证元素,类似于jquery的removeClass的用法
	参数
		$dom(元素jquery对象),verify(验证字符串)
	返回值
		无
	用法
		$.lay.addLayVerify($("input"),phone);
7.openIframe
	简介
		打开layui iframe弹出窗
	参数
		 * @bootTitle 弹窗框标题 默认不显示
		 * @bootUrl 弹窗框访问的url 默认404
		 * @bootWidth 弹窗框高度 默认自适应
		 * @bootHeight 弹窗框宽度 默认自适应
		 * @end 弹窗框销毁 执行函数 默认刷新 使用这个函数的页面
	返回值
		无
	用法
		$.lay.openIframe("新的弹出层",“后台访问路径或者前台url”);
8.confirm
	简介
		打开layui询问窗
	参数
		 * @bootTitle 弹窗框标题 默认不显示
		 * @bootUrl 弹窗框访问的url 默认404
		 * @successFunction 弹窗框发送请求回调 执行函数 默认刷新 使用这个函数的页面
	返回值
		无
	用法
		$.lay.confirm("您确认要删除吗",“ajax请求路径”);
9.closeIframe
	简介
		关闭当前打开的窗口
	参数
		无
	返回值
		无
	用法
		$.lay.closeIframe();

代码

位置:码云地址

/**
 * layui 的工具类 集成到jquery上 调用方式 $.lay.method
 */
(function($) {
	// 扩展这个方法到jQuery.
	// $.extend() 是吧方法扩展到 $ 对象上,和 $.fn.extend 不同。
	// 扩展到 $.fn.xxx 上后,调用的时候就可以是 $(selector).xxx()
	// $.xxx 后 是$..
	layui.use([ 'form', 'layer', 'laydate', 'table', 'laytpl' ], function() {
		var form = layui.form, layer = parent.layer === undefined ? layui.layer : top.layer, $ = layui.jquery, laydate = layui.laydate, laytpl = layui.laytpl, table = layui.table;
		$.extend({
			lay : {
				/**
				 * 获取layui table 所有选中的id
				 */
				tableGetCheckIds : function(tableId) {
					var checkStatus = table.checkStatus(tableId);
					var data = checkStatus.data;
					var ids = new Array();
					for ( var key in data) {
						ids.push(data[key].id);
					}
					return ids.join(",");
				},
				/**
				 * 刷新基础父窗口对象的所有子iframe
				 */
				reloadAllIframe : function() {
					parent.$("iframe").each(function() {
						$(this).attr('src', $(this).attr('src')); // 需要引用jquery
					})
				},
				/**
				 * 刷新使用者的iFame
				 */
				reloadUseIframe : function() {
					$(".layui-tab-item.layui-show", top.document).find("iframe")[0].contentWindow.location.reload();
				},
				/**
				 * 刷新自己的iframe
				 */
				reloadIframe : function() {
					location.reload();
				},

				/**
				 * 追加验证
				 * https://www.cnblogs.com/nuysoft/archive/2011/12/27/2300675.html
				 */
				addLayVerify : function($dom,verify) {
					$dom.each(function(){
						var $this =$(this);
						 var layVerify =$this.attr("lay-verify");
						 if(layVerify){  // 判断是否存在元素
							 var index = _.indexOf(layVerify.split("|"),verify);
							 if(index!=-1){
								 return;
							 }
							 layVerify+="|";
						 }
						layVerify+=verify;
						$this.attr("lay-verify",layVerify); 
					});
				},
				/**
				 * 移除验证
				 */
				removeLayVerify : function($dom,verify) {
					$dom.each(function(){
						var $this =$(this);
					 var layVerify =$this.attr("lay-verify");
					 if(layVerify){  // 判断是否存在元素
						 var layVerify = layVerify.split("|");
						 var index = _.indexOf(layVerify,verify);
						 if(index!=-1){ // 存在元素就删除
							 layVerify.remove(verify);
							 $this.attr("lay-verify",layVerify.join("|")); 
						 }
					 }
					});
				},
				/**
				 * 打开弹窗窗口
				 * 
				 * @bootTitle 弹窗框标题 默认不显示
				 * @bootUrl 弹窗框访问的url 默认404
				 * @bootWidth 弹窗框高度 默认自适应
				 * @bootHeight 弹窗框宽度 默认自适应
				 * @end 弹窗框销毁 执行函数 默认刷新 使用这个函数的页面
				 */
				openIframe : function(bootTitle, bootUrl, bootWidth, bootHeight, end) {
					// 如果是移动端,就使用自适应大小弹窗
					if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {
						width = 'auto';
						height = 'auto';
					}
					if (_.isEmpty(bootTitle)) {
						bootTitle = false;
					}
					if (_.isEmpty(bootUrl)) {
						bootUrl = "/error404";
					}
					if (_.isEmpty(bootWidth)) {
// bootWidth = ($(window).width() * 0.5);
						bootWidth = 800;
					}
					if (_.isEmpty(bootHeight)) {
						bootHeight = ($(window).height() - 50);
					}
					if (_.isEmpty(end)) { // 默认刷新
						end = function() {
							// location.reload();
						}
					}
					/*
					 * //获取父页面的的url 然后进行刷新 layer.iframeSrc(index,
					 * 'http://sentsin.com');
					 */
					var index = layer.open({
						type : 2, // 设置弹窗类型为iframe
						area : [ bootWidth + 'px', bootHeight + 'px' ],  // area
																			// - 宽高
						fix : false, // 不固定
						maxmin : true,
						shadeClose : false, // shadeClose - 是否点击遮罩关闭
						shade : 0.3, // shade - 遮罩 默认0.3
// offset : 't', //offset - 坐标
						title : bootTitle,  // title - 标题
						content : bootUrl, // content - 内容
// scrollbar : false, // 是否允许浏览器出现滚动条
						anim:0 ,// anim - 弹出动画 默认0
						resizing : function(layero) {
							layer.iframeAuto(index);// 指定iframe层自适应
						},
						success : function(layero, index) { // 弹出时
							// layero 打开窗口的元素对象 ,index 窗口的索引
							var $iframe = $(layero).find('iframe')[0]; // 获取打开的iframe对象
							// 获取当前页面的iframe
							$iframe.contentWindow.useIframe = window.name;
						},
						end : end
					});
					$(window).resize(function(){
					    $(".layui-layer-maxmin").parents(".layui-layer").width($(window).width()).height($(window).height());
					});
				},
				/**
				 * 打开询问窗
				 * 
				 * @bootTitle 弹窗框标题 默认不显示
				 * @bootUrl 弹窗框访问的url 默认404
				 * @successFunction 弹窗框发送请求回调 执行函数 默认刷新 使用这个函数的页面
				 */
				confirm : function(bootTitle, bootUrl, successFunction) {
					if (_.isEmpty(bootTitle)) {
						bootTitle = '提示信息';
					}
					if (_.isEmpty(bootUrl)) {
						bootUrl = "/error404";
					}
					if (_.isEmpty(successFunction)) {
						successFunction = function() {
							$(".boot-search-btn").click();
						}
					}
					layer.confirm(bootTitle, {
						icon : 3,
						title : '提示信息'
					}, function(index) {
						$.get(bootUrl, {}, function(result) {
							layer.msg(result.msg);
							$.lay.reloadUseIframe();
						});
					});
				},
				/**
				 * 关闭当前打开的窗口
				 */
				closeIframe : function() {
					var index = parent.layer.getFrameIndex(window.name); // 先得到当前iframe层的索引
					parent.layer.close(index);
				}
			}
		});
	});
	// 传递jQuery到内层作用域去, 如果window,document用的多的话, 也可以在这里传进去.
	// })(jQuery, window, document, undefined);
})(jQuery, undefined);
// 调用方式 $(".selector").pluginName().otherMethod();

你可能感兴趣的:(【layui】)