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插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
Apr 11 jQuery
jquery replace方法去空格
May 08 jQuery
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
May 20 jQuery
jQuery扇形定时器插件pietimer使用方法详解
Jul 18 jQuery
JS和jQuery通过this获取html标签中的属性值(实例代码)
Sep 11 jQuery
jQuery 开发之EasyUI 添加数据的实例
Sep 26 jQuery
JQuery Ajax动态加载Table数据的实例讲解
Aug 09 jQuery
jQuery事件委托代码实践详解
Jun 21 jQuery
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
Oct 16 jQuery
jQuery/JS监听input输入框值变化实例
Oct 17 jQuery
JQuery 实现文件下载的常用方法分析
Oct 29 jQuery
用jQuery实现抽奖程序
Apr 12 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接收POST数据,解析json数据
2013/06/28 PHP
简单的php缓存类分享     php缓存机制
2014/01/22 PHP
PHP+MySQL删除操作实例
2015/01/21 PHP
Smarty变量用法详解
2016/05/11 PHP
php删除数组指定元素实现代码
2017/05/03 PHP
PHP cookie与session会话基本用法实例分析
2019/11/18 PHP
javascript生成/解析dom的CDATA类型的字段的代码
2007/04/22 Javascript
jQuery Tools Dateinput使用介绍
2012/07/14 Javascript
jquery统计用户选中的复选框的个数
2014/06/06 Javascript
JS实现网页上随滚动条滚动的层效果代码
2015/11/04 Javascript
JavaScript数组操作函数汇总
2016/08/05 Javascript
Bootstrap选项卡学习笔记分享
2017/02/13 Javascript
防止重复发送 Ajax 请求
2017/02/15 Javascript
基于vue-cli 打包时抽离项目相关配置文件详解
2018/03/07 Javascript
vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
2018/09/07 Javascript
JS防抖和节流实例解析
2019/09/24 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
2020/07/31 Javascript
微信小程序实现购物车功能
2020/11/18 Javascript
three.js如何实现3D动态文字效果
2021/03/03 Javascript
python条件和循环的使用方法
2013/11/01 Python
python中的装饰器详解
2015/04/13 Python
python基于xmlrpc实现二进制文件传输的方法
2015/06/02 Python
Python的Django框架中设置日期和字段可选的方法
2015/07/17 Python
利用Python进行异常值分析实例代码
2017/12/07 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
2018/01/09 Python
Django使用AJAX调用自己写的API接口的方法
2019/03/06 Python
Python Pandas数据结构简单介绍
2019/07/03 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
python3中celery异步框架简单使用+守护进程方式启动
2021/01/20 Python
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
世界上最大的网络主机公司:1&1
2016/10/12 全球购物
请说出以下代码输出什么
2013/08/30 面试题
旅游管理专业个人求职信范文
2013/12/24 职场文书
初中家长评语大全
2014/12/26 职场文书
2016年3月份红领巾广播稿
2015/12/21 职场文书
Golang 实现获取当前函数名称和文件行号等操作
2021/05/08 Golang