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 相关文章推荐
JQueryMiniUI按照时间进行查询的实现方法
Jun 07 jQuery
利用jQuery+localStorage实现一个简易的计时器示例代码
Dec 25 jQuery
jQuery封装animate.css的实例
Jan 04 jQuery
jquery根据name取得select选中的值实例(超简单)
Jan 25 jQuery
jQuery实现ajax回调函数带入参数的方法示例
Jun 26 jQuery
jQuery实现table表格信息的展开和缩小功能示例
Jul 21 jQuery
jQuery.parseJSON()函数详解
Feb 28 jQuery
jQuery事件blur()方法的使用实例讲解
Mar 30 jQuery
jQuery属性选择器用法实例分析
Jun 28 jQuery
jQuery实现可编辑的表格
Dec 11 jQuery
jquery插件懒加载的示例
Oct 24 jQuery
jquery自定义组件实例详解
Dec 31 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
增加反向链接的101个方法 站长推荐
2007/01/31 PHP
phpMyAdmin链接MySql错误 个人解决方案
2009/12/28 PHP
hadoop中一些常用的命令介绍
2013/06/19 PHP
分享一段PHP制作的中文拼音首字母工具类
2014/12/11 PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
2016/10/08 PHP
php自动加载代码实例详解
2021/02/26 PHP
jquery获取元素值的方法(常见的表单元素)
2013/11/15 Javascript
js function定义函数的几种不错方法
2014/02/27 Javascript
基于jquery的文字向上跑动类似跑马灯的效果
2014/09/22 Javascript
php结合imgareaselect实现图片裁剪
2015/07/05 Javascript
JS实现的手机端精简幻灯片效果
2016/09/05 Javascript
checkbox在vue中的用法小结
2018/11/13 Javascript
如何能分清npm cnpm npx nvm
2019/01/17 Javascript
详解ES7 Decorator 入门解析
2019/02/18 Javascript
利用Angular7开发一个Radio组件的全过程
2019/07/11 Javascript
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
2019/07/26 Javascript
Vue-cli3多页面配置详解
2020/03/22 Javascript
Python3基础之基本数据类型概述
2014/08/13 Python
开始着手第一个Django项目
2015/07/15 Python
在Django的form中使用CSS进行设计的方法
2015/07/18 Python
python自动12306抢票软件实现代码
2018/02/24 Python
python 按照固定长度分割字符串的方法小结
2018/04/30 Python
对Python中实现两个数的值交换的集中方法详解
2019/01/11 Python
python递归法解决棋盘分割问题
2019/07/17 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
2020/12/07 Python
巴西家用小家电购物网站:Polishop
2016/08/07 全球购物
什么是设计模式
2012/06/17 面试题
Python的两道面试题
2013/06/29 面试题
工商管理专业实习生自我鉴定
2013/09/29 职场文书
大学生求职自我评价
2014/01/16 职场文书
秘书英文求职信
2014/04/16 职场文书
电子商务专业应届毕业生求职信
2014/06/21 职场文书
企业贷款委托书格式
2014/09/12 职场文书
寻衅滋事罪辩护词
2015/05/21 职场文书
go web 预防跨站脚本的实现方式
2021/06/11 Golang
oracle delete误删除表数据后如何恢复
2022/06/28 Oracle