jquery自定义组件实例详解


Posted in jQuery onDecember 31, 2020

缘起

我们知道在JQ中,是允许我们自定义一些插件与扩展的。定义的方式也比较简单,采用$.extend就行,那么下面就来看看在JQ中自定义一个插件的实例

JQuery如何封装一个组件

效果

我们先来看封装好的组件的效果图,这是一个根据组织机构选择人员的组件。

jquery自定义组件实例详解

实现原理

我们先定义一个DbwSelectUser函数

DbwSelectUser : function (options) {
 var opt = $.extend({
 //是否多选:true(多选),false(单选)
 multi:true,
 offset:'auto',
 //layerIndex:弹出窗口索引
 //users数据结构:[{userId:'', userName:'', departId:'', departName:''}]
 onOk:function(layerIndex, users){}
 }, options || {});
 $.LoadIframe({
 title: '请选择人员',
 content: 'assets/js/extend/jquery/userSelect/user-select.jsp?multi=' + opt.multi,
 maxmin: false,
 area: ['840px', '500px'],
 resize: false,
 scrollbar:false,
 offset: opt.offset,
 btn: ['确定', '取消'],
 yes: function (index, layero) {
  var iframeWin = $(layero).find('iframe')[0].contentWindow;
  //users:[{userId:'', userName:'', departId:'', departName:''}]
  var users = iframeWin.getSelectedUsers();
  opt.onOk(index, users);
  return false;
 }
 }, false);
}

这里的user-select.jsp就是要弹出的页面

这边调用了LoadIframe方法并传入了参数,我们来看看LoadIframe方法的实现

LoadIframe: function (options, fullScreen) {
 /*layer的默认配置*/
 var _default = {
  type: 2,
  title: '系统窗口',
  content: '',
  area: 'auto',
  shadeClose: false,
  maxmin: true,
  maxWidth: 600,
  maxHeight: 500
 },
 o = $.extend(_default, options || {}),
 index = layui.layer.open(o);
 if (fullScreen) {
 //窗口全屏
 layui.layer.full(index);
 }
 return index;
}

使用

$.DbwSelectUser({
 //offset:弹出框显示位置(空或auto:居中,rb:右下角)
 offset:'rb',
 //选好人员后弹出框的“确定”按钮单击事件回调函数
 onOk:function(layerIndex, users) {
 //layerIndex:弹出框layer的索引
 //users数据结构:[{userId:'', userName:'', departId:'', departName:''},{....}]
 //以下编写接收到所选人员后自己的业务逻辑
 }
});

可以看到其实是对layui的一个弹窗进行了封装,其中$.extend是JQuery里面扩展插件的一个方法,会用后面的同名变量替换前面的。在上诉代码中的作用是用来如果你没有传某个属性,就用默认的属性。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
JQuery实现定时刷新功能代码
May 09 jQuery
利用jquery去掉时光轴头尾部线条的方法实例
Jun 16 jQuery
jQuery动画_动力节点节点Java学院整理
Jul 04 jQuery
jquery操作ul的一些操作笔记整理(干货)
Aug 31 jQuery
JS+jQuery实现注册信息的验证功能
Sep 26 jQuery
jQuery实现数字自动增加或者减少的动画效果示例
Dec 11 jQuery
JS/jQuery实现获取时间的方法及常用类完整示例
Mar 07 jQuery
JQueryDOM之样式操作
Mar 27 jQuery
jQuery实现文本显示一段时间后隐藏的方法分析
Jun 20 jQuery
jQuery实现的解析本地 XML 文档操作示例
Apr 30 jQuery
jQuery 淡入/淡出效果函数用法分析
May 19 jQuery
如何使用jQuery操作Cookies方法解析
Sep 08 jQuery
JS+JQuery实现无缝连接轮播图
Dec 30 #jQuery
JS实现选项卡插件的两种写法(jQuery和class)
Dec 30 #jQuery
jQuery实现简单轮播图效果
Dec 27 #jQuery
原生jQuery实现只显示年份下拉框
Dec 24 #jQuery
jquery实现鼠标悬浮弹出气泡提示框
Dec 23 #jQuery
jquery实现图片放大镜效果
Dec 23 #jQuery
jQuery实现增删改查
Dec 22 #jQuery
You might like
探讨如何在php168_cms中提取验证码
2013/06/08 PHP
深入解析Session是否必须依赖Cookie
2013/08/02 PHP
PHP上传文件时文件过大$_FILES为空的解决方法
2013/11/26 PHP
PHP 5.3新增魔术方法__invoke概述
2014/07/23 PHP
值得分享的php+ajax实时聊天室
2016/07/20 PHP
PHP常用函数总结(180多个)
2016/12/25 PHP
PHP调用接口API封装的例子
2019/10/11 PHP
PHP7 其他修改
2021/03/09 PHP
用ADODB.Stream转换
2007/01/22 Javascript
asp 取文本框名称代码
2008/12/02 Javascript
JavaScript 基于原型的对象(创建、调用)
2009/10/16 Javascript
JS 自定义带默认值的函数
2011/07/21 Javascript
简单选项卡 js和jquery制作方法分享
2014/02/26 Javascript
多个checkbox被选中时如何判断是否有自己想要的
2014/09/22 Javascript
JQuery中extend的用法实例分析
2015/02/08 Javascript
javascript关于open.window子页面执行完成后刷新父页面的问题分析
2015/04/27 Javascript
14款经典网页图片和文字特效的jQuery插件-前端开发必备
2015/08/25 Javascript
JavaScript中的函数(二)
2015/12/23 Javascript
基于JavaScript实现购物网站商品放大镜效果
2016/09/06 Javascript
JS使用插件cryptojs进行加密解密数据实例
2017/05/11 Javascript
基于Vue实现拖拽功能
2020/07/29 Javascript
vue实现扫码功能
2020/01/17 Javascript
Python中字典映射类型的学习教程
2015/08/20 Python
Python数据分析之如何利用pandas查询数据示例代码
2017/09/01 Python
Python中作用域的深入讲解
2018/12/10 Python
机器学习实战之knn算法pandas
2019/06/22 Python
python 普通克里金(Kriging)法的实现
2019/12/19 Python
Python Unittest原理及基本使用方法
2020/11/06 Python
纯css3无js实现的Android Logo(有简单动画)
2013/01/21 HTML / CSS
学习雷锋做美德少年寄语大全
2014/04/09 职场文书
乡镇三严三实学习心得体会
2014/10/13 职场文书
2014年银行工作总结范文
2014/11/12 职场文书
学生逃课万能检讨书2000字
2015/02/17 职场文书
幼师求职自荐信
2015/03/26 职场文书
关于分班的感言
2015/08/04 职场文书
如果用一句诗总结你的上半年,你会用哪句呢?
2019/07/16 职场文书