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使用ajax_动力节点Java学院整理
Jul 05 jQuery
jQuery实现QQ空间汉字转拼音功能示例
Jul 10 jQuery
jQuery动态添加.active 实现导航效果代码思路详解
Aug 29 jQuery
jQuery实现滚动效果
Nov 17 jQuery
jQuery EasyUI window窗口使用实例代码
Dec 25 jQuery
jquery实现联想词搜索框和搜索结果分页的示例
Oct 10 jQuery
JQuery Ajax执行跨域请求数据的解决方案
Dec 10 jQuery
jQuery实现适用于移动端的跑马灯抽奖特效示例
Jan 18 jQuery
jquery ui 实现 tab标签功能示例【测试可用】
Jul 25 jQuery
jQuery Raty星级评分插件使用方法实例分析
Nov 25 jQuery
jquery实现简易验证插件封装
Sep 13 jQuery
JQuery Ajax如何实现注册检测用户名
Sep 25 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
php下载文件的代码示例
2012/06/29 PHP
mongo Table类文件 获取MongoCursor(游标)的实现方法分析
2013/07/01 PHP
destoon整合UCenter图文教程
2014/06/21 PHP
PHP多维数组转一维数组的简单实现方法
2015/12/23 PHP
PHP在线打包下载功能示例
2016/10/15 PHP
不要小看注释掉的JS 引起的安全问题
2008/12/27 Javascript
JS实现匀速运动的代码实例
2013/11/29 Javascript
javascript使用smipleChart实现简单图表
2015/01/02 Javascript
AngularJS基础知识笔记之表格
2015/05/10 Javascript
简介JavaScript中的getSeconds()方法的使用
2015/06/10 Javascript
简述AngularJS的控制器的使用
2015/06/16 Javascript
基于javascript实现图片预加载
2016/01/05 Javascript
JavaScript程序开发之JS代码放置的位置
2016/01/15 Javascript
原生js实现倒计时--2018
2017/02/21 Javascript
jQuery获取table下某一行某一列的值实现代码
2017/04/07 jQuery
微信小程序如何实现点击图片放大功能
2020/01/21 Javascript
JavaScript实现留言板案例
2020/03/17 Javascript
vue中可编辑树状表格的实现代码
2020/10/31 Javascript
[02:56]DOTA2英雄基础教程 巨魔战将
2013/12/10 DOTA
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
2016/05/17 Python
python常见的格式化输出小结
2016/12/15 Python
Python多线程经典问题之乘客做公交车算法实例
2017/03/22 Python
python中模块查找的原理与方法详解
2017/08/11 Python
Python使用matplotlib实现的图像读取、切割裁剪功能示例
2018/04/28 Python
django 多数据库配置教程
2018/05/30 Python
对python中的高效迭代器函数详解
2018/10/18 Python
Django 模型类(models.py)的定义详解
2019/07/19 Python
python 连续不等式语法糖实例
2020/04/15 Python
python 基于pygame实现俄罗斯方块
2021/03/02 Python
纯CSS3实现圆圈动态发光特效动画的示例代码
2021/03/08 HTML / CSS
HTML5 在canvas中绘制矩形附效果图
2014/06/23 HTML / CSS
财务工作个人求职的自我评价
2013/12/19 职场文书
平安建设工作方案
2014/06/02 职场文书
历史学专业求职信
2014/06/19 职场文书
房贷收入证明范本
2015/06/12 职场文书
工作简报范文
2015/07/21 职场文书