JGUI源码:组件及函数封装方法(7)
以Accordion为例
1、在base.js定义一个对象,这样可以和JQuery对象区分开,用户使用组件时比较清晰一点,也可以在这里引用多个库。
var JGUI = J = {
version : '0.01',
$ : window.jQuery
};
2、Accordion.js修改Init,fold,unfold如下,之前全局方法,现在改成下面的写法,里边的selector要换成$(this)。
/**
* Accordion封装
*/
J.Accordion = (function($) {
init = function(selector,p_options, p_datas, p_param) {
return selector.each(function() {
var datas = selector.extend(
{
_sumdelta: 0,
_mouseintervalhandle: undefined,
_startmousewheeldatetime: null
},
p_datas
);
selector.data("datas", datas);
});
};
//折叠
fold = function(selector) {
return selector.each(function() {
selector
.find(".jgui-accordion-navitem")
.siblings("dd")
.slideUp();
selector.find(".jgui-accordion-navitem span").hide();
selector.find(".jgui-accordion-navitem .jgui-accordion-navitem-more").hide();
});
};
//展开
unfold = function(selector) {
return selector.each(function() {
selector
.find(".jgui-accordion-navitem-more.expanded")
.closest(".jgui-accordion-navitem")
.siblings("dd")
.slideDown();
selector.find(".jgui-accordion-navitem span").show();
selector.find(".jgui-accordion-navitem .jgui-accordion-navitem-more").show();
});
};
return {
init : init,
fold : fold,
unfold : unfold
}
})(J.$);
J.Accordion.init($('.jgui-accordion'));//(".jgui-accordion").init();
3、示例使用方法
J.Accordion.unfold($('#menuaccordion'));
如果内部方法都不带参数的话,改为最外成传入selector的话,可以用如下写法。
J.Accordion($('#menuaccordion')).unfold();
4、说明:
(function($){})(J.$);
等价于
function a(J.$){}
a(selector)
助记:两个()()相当于(定义)+(执行)。
静态生成菜单基本上没问题了,如果使用js创建的菜单需要动态绑定,下面将解决这个问题。
另一种写法:(function($){...})(jQuery) 相当于定义后直接执行。
JGUI源码:组件及函数封装方法(7)的更多相关文章
- JGUI源码:从头开始,建一个自己的UI框架(1)
开篇 1.JGUI是为了逼迫自己研究底层点的前端技术而做的框架,之前对web底层实现一直没有深入研究,有了技术瓶颈,痛定思痛从头研究, 2.虽然现在vue技术比较火,但还在发展阶段,暂时先使用JQue ...
- UCanCode发布升级E-Form++可视化源码组件库2015全新版 (V23.01)!
2015年4月. 成都 UCanCode发布升级E-Form++可视化源码组件库2015全新版 (V23.01)! --- 全面性能提升,UCanCode有史以来最强大的版本发布! E-Form++可 ...
- UCanCode发布升级E-Form++可视化源码组件库2018全新版 !
2018年. 成都 UCanCode发布升级E-Form++可视化源码组件库2018全新版 ! --- 全面性能提升,UCanCode有史以来最强大的版本发布! E-Form++可视化源码组件库企业版 ...
- UCanCode发布升级E-Form++可视化源码组件库2020全新版 !
2020年. 中国.成都 UCanCode发布升级E-Form++可视化源码组件库2020全新版 ! --- 全面性能提升,UCanCode有史以来最强大的版本发布! E-Form++可视化源码组件库 ...
- UCanCode发布升级E-Form++可视化源码组件库2014 全新版 (V20.01)!
UCanCode发布升级E-Form++可视化源码组件库2014 全新版 (V20.01)! --- UCanCode有史以来最强大的版本发布! E-Form++可视化源码组件库企业版本2014最新版 ...
- 读zepto源码之工具函数
读zepto源码之工具函数 Zepto 提供了丰富的工具函数,下面来一一解读. 源码版本 本文阅读的源码为 zepto1.2.0 $.extend $.extend 方法可以用来扩展目标对象的属性.目 ...
- Netty 源码剖析之 unSafe.write 方法
前言 在 Netty 源码剖析之 unSafe.read 方法 一文中,我们研究了 read 方法的实现,这是读取内容到容器,再看看 Netty 是如何将内容从容器输出 Channel 的吧. 1. ...
- jQuery源码分析-each函数
本文部分截取自且行且思 jQuery.each方法用于遍历一个数组或对象,并对当前遍历的元素进行处理,在jQuery使用的频率非常大,下面就这个函数做了详细讲解: 复制代码代码 /*! * jQuer ...
- 痞子衡嵌入式:MCUXpresso IDE下将源码制作成Lib库方法及其与IAR,MDK差异
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家分享的是MCUXpresso IDE下将源码制作成Lib库方法及其与IAR,MDK差异. 程序函数库是一个包含已经编译好代码和数据的函数集合,这 ...
随机推荐
- SQLServer之创建用户定义的数据库角色
创建用户定义的数据库角色注意事项 角色是数据库级别的安全对象. 在创建角色后,可以使用 grant.deny 和revoke来配置角色的数据库级权限. 若要向数据库角色添加成员,请使用alter ro ...
- Linux Mint(ubuntu)如何汉化firefox浏览器?
自从火狐浏览器改用新的Quantum新核心后,原来的一些插件.性能,还有一部分设置方法都与原来相比有所改变,比如汉化问题,以前的做法是这样的: sudo apt-get install firefox ...
- DEDECMS 漏洞修复方案
目录 DEDECMS支付模块注入漏洞 漏洞文件: /include/payment/alipay.php 漏洞描述: 对输入参数$_GET['out_trade_no']未进行严格过滤 修复方案: 对 ...
- 数据库【mongodb篇】基本命令学习笔记
MongoDB基本命令用 MongoDB基本命令用 成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作. 输入help可以看到基本操作命令: show dbs ...
- python学习——读取染色体长度(六:读取含有染色体长度的文件)
含有染色体长的文件chr_len.txt chr1 10chr2 20chr3 30chr4 40chr5 50 python脚本 #传递命令行参数 import sys # 导入模块 # 从命令行获 ...
- Spring第一天——入门与IOC
大致内容 spring基本概念 IOC入门 [17.6.9更新],如何学习spring? 掌握用法 深入理解 不断实践 反复总结 再次深入理解与实践 一.Spring相关概念 1.概述: Sprin ...
- day13(函数嵌套定义,global,nonlocal关键字,闭包,装饰器)
一,复习 ''' 1.函数对象:函数名 => 存放的是函数的内存地址 1)函数名 - 找到的是函数的内存地址 2)函数名() - 调用函数 => 函数的返回值 eg:fn()() => ...
- .netcore2.0发送邮件
SmtpClient smtpClient = new SmtpClient(); smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;//指 ...
- codeforces 796A-D
决定在 codeforces 练题啦,决定每个比赛刷前四道...太难就算了 796A Buying A House 题意:给出x轴上的n 个点,每个点有个权值,问离m 点最近的权值小于等于k 的点离m ...
- 【zabbix教程系列】七、自动注册(Windows)
零.页面操作,设置自动注册Windows 配置--->动作--->事件源选为自动注册---->创建动作 填写名称,配置触发条件 主机元数据 值为 Windows 操作 一.Win ...