分享一个自己写的方便操作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();