探究一下qwrap的Jss开篇
本文探究一下qwrap的一个特色地方:Jss
mix(Jss,{//存储的变量空间rules:{},/***@name addRule*@param sSelector {String} selector字符串*@param ruleData {Object}* /addRule:function(sSelector,ruleData){//判断一下Jss.rules对象里面是否有key为sSelector,如果没有创建空对象{}var data = Jss.rules[sSelector] || (Jss.rules[sSelector] = {});//合并一下数据,第三个参数true表示覆盖已有的mix(data,ruleData,true);},/***@name addRules*@param rules {Object} key为selector 值为json对象*@see addRule /addRules:function(rules){//批量调用Jss.addRulefor(var i in rules){Jss.addRule(i,rules[i]);}},/***@name removeRule*@param sSelector {String} selector字符串*@return {Boolean} 是否执行删除操作* /removeRule:function(sSelector){//先看Jss.rules里面有没有对应key为sSelector的数据var data = Jss.rules[sSelector];if(data){//采用deletedelete Jss.rules[sSelector];//给标志位表示删除操作成功return true;}//给标志位表示没有执行删除 return false;},/***@name getRuleData*@param sSelector {String} selector字符串*@return {Object} 数据对象* /getRuleData:function(sSelector){//直接返回Jss.rules对象对应的key为sSelector的valuereturn Jss.rules[sSelector];},/***@name setRuleAttribute*@param sSelector {String} selector字符串*@param sSelector {String} attributeName*@param sSelector {String} value /setRuleAttribute:function(sSelector,attributeName,value){//创建一个空对象var data = {};//装key为attributeName,value为valuedata[attributeName] = value;//调用Jss.addRuleJss.addRule(sSelector,data); },/***@name removeRuleAttribute*@param sSelector {String} selector字符串*@param sSelector {String} attributeName*@return {Boolean} 是否执行删除/removeRuleAttribute:function(sSelector,attributeName){var data = Jss.rules[sSelector];if(data && (attributeName in data)){//采用deletedelete data[attributeName];//给标志位表示删除操作成功return true;}//给标志位表示没有执行删除 return false;},/***@name getRuleAttribute*@param {String} selector字符串*@param {String} attributeName*@return 对应attributeName的数据部分/getRuleAttribute:function(sSelector,attributeName){//获取Jss.rules指定的sSelector,没有就创建空对象{}var data = Jss.rules[sSelector] || {};//获取指定的attributeNamereturn data[attributeName];}});
结论:
- 上面数据存取其实都是操作的Jss.rules这个对象
- sSelector是有规范要求的:
- #id
- @name
- .className
- tagName
探究一下qwrap的Jss开篇相关推荐
- qwrap之Jss调用
/***@name getOwnJssData 获取设置data-jss这种方式的数据*@param el*@param needInit*@return {Object} data / functi ...
- 手写动画css jss_用手写笔生成CSS网格
手写动画css jss I've jumped into Stylus over the past few moths and I love it. I wouldn't say it's bett ...
- vue(9) - 收藏集 - 掘金
Vue.js 自定义指令的用法与实例 - 前端 - 掘金 市面上大多数关于Vue.js自定义指令的文章都在讲语法,很少讲实际的应用场景和用例,以致于即便明白了怎么写,也不知道怎么用.本文不讲语法,就讲 ...
- 深入理解vue.js双向绑定的实现原理
vue.js是MVVM(模型到视图和视图到模型)结构的,同类的还有AngularJs:至于MVC.MVP.MVVM的比较网上已经有很多了,这样不再重复.这篇文章将给大家深入的介绍vue.js双向绑定的 ...
- Nodejs cluster模块深入探究
可以收藏我的博客 由表及里 HTTP服务器用于响应来自客户端的请求,当客户端请求数逐渐增大时服务端的处理机制有多种,如tomcat的多线程.nginx的事件循环等.而对于node而言,由于其也采用事件 ...
- SpringBoot——入门(HelloWorld和探究HelloWorld)
一.简介 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定 ...
- iOS底层原理探究 第一探. 事件传递和响应者链
一. 声明: 本文意在探讨, 也参考了几位大神的文章, 在最后我会把链接发出来, 如果有理解错误的地方, 请大神们指正哈! 二. 前言: 最近自己做项目的时候, 用到了UITabbarContro ...
- React高阶组件探究
React高阶组件探究 在使用React构建项目的过程中,经常会碰到在不同的组件中需要用到相同功能的情况.不过我们知道,去这些组件中到处编写同样的代码并不优雅. 在以往,为了解决以上的情况,我们会用到 ...
- Spring开篇介绍-如果没有Spring如何对外暴露一个接口
引言 目前我在互联网行业已经工作5年以上了,回想起刚毕业时刚刚接触Spring框架,做了一个专利管理系统,后续工作中负责过交易型业务,贷前和贷后业务,支付业务等.现在主要深耕营销活动领域,不管是自己开 ...
最新文章
- [BZOJ3262]陌上花开
- 【MaxCompute】学习笔记操作表sql
- Spring配置Bean的方式
- django-celery定时任务以及异步任务and服务器部署并且运行全部过程
- mysql自动获取时间列_mysql自动获取时间日期的方法
- 完整、详细的MySQL规范
- 唱歌腹式呼吸法的运用技巧
- 解决VirtualBox配置静态ip和连外网的问题
- go语言 json -转载
- 单片机方案设计红外人体测温仪方案
- MPAndroidChart 饼状图 文字重叠问题完美解决
- 淮阴工学院计算机科学讲师,淮阴工学院计算机与软件工程学院统战人士工作业绩...
- E+H 超声波液位计FMU40-ARD2A2 应用优势及应用领域
- C语言公制长度转英制长度,英制换算(英制长度转换公制长度换算)
- 让海航买不起的当当究竟值多少钱?90亿够不够?
- 牛客每日练习----珂朵莉与宇宙,Forever97与寄信,Number
- 最新版 FatFS f_mkfs 详解
- 复位IC,低电压检测IC PJ809
- 2022-2028年中国草炭行业市场深度分析及发展趋向分析报告
- 蔚来大逆转:去年最惨,现在最富
热门文章
- FTRL-Proximal
- 无盘服务器费用,无盘系统真的省钱吗?
- mysql创建表设置自增_mysql 创建表并设置主键自增
- JS生成二维码以及点击下载二维码
- PC版老毛桃U盘启动装机器
- 我的世界java肥料桶_我的世界:堆肥桶太垃圾?老MC告诉你5个它的“正确用法”!...
- 4am永远 鼠标按键设置_血手幽灵V8M Max游戏鼠标怎么样?到底值不值得入手?
- 多模态大模型综述: LLaVA, MiniGPT4
- 离子交换树脂技术干货
- TP-LINK实习生总结