本文探究一下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是有规范要求的:
  1. #id
  2. @name
  3. .className
  4. tagName

探究一下qwrap的Jss开篇相关推荐

  1. qwrap之Jss调用

    /***@name getOwnJssData 获取设置data-jss这种方式的数据*@param el*@param needInit*@return {Object} data / functi ...

  2. 手写动画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 ...

  3. vue(9) - 收藏集 - 掘金

    Vue.js 自定义指令的用法与实例 - 前端 - 掘金 市面上大多数关于Vue.js自定义指令的文章都在讲语法,很少讲实际的应用场景和用例,以致于即便明白了怎么写,也不知道怎么用.本文不讲语法,就讲 ...

  4. 深入理解vue.js双向绑定的实现原理

    vue.js是MVVM(模型到视图和视图到模型)结构的,同类的还有AngularJs:至于MVC.MVP.MVVM的比较网上已经有很多了,这样不再重复.这篇文章将给大家深入的介绍vue.js双向绑定的 ...

  5. Nodejs cluster模块深入探究

    可以收藏我的博客 由表及里 HTTP服务器用于响应来自客户端的请求,当客户端请求数逐渐增大时服务端的处理机制有多种,如tomcat的多线程.nginx的事件循环等.而对于node而言,由于其也采用事件 ...

  6. SpringBoot——入门(HelloWorld和探究HelloWorld)

    一.简介 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定 ...

  7. iOS底层原理探究 第一探. 事件传递和响应者链

    一. 声明:  本文意在探讨, 也参考了几位大神的文章, 在最后我会把链接发出来, 如果有理解错误的地方, 请大神们指正哈! 二. 前言:  最近自己做项目的时候, 用到了UITabbarContro ...

  8. React高阶组件探究

    React高阶组件探究 在使用React构建项目的过程中,经常会碰到在不同的组件中需要用到相同功能的情况.不过我们知道,去这些组件中到处编写同样的代码并不优雅. 在以往,为了解决以上的情况,我们会用到 ...

  9. Spring开篇介绍-如果没有Spring如何对外暴露一个接口

    引言 目前我在互联网行业已经工作5年以上了,回想起刚毕业时刚刚接触Spring框架,做了一个专利管理系统,后续工作中负责过交易型业务,贷前和贷后业务,支付业务等.现在主要深耕营销活动领域,不管是自己开 ...

最新文章

  1. [BZOJ3262]陌上花开
  2. 【MaxCompute】学习笔记操作表sql
  3. Spring配置Bean的方式
  4. django-celery定时任务以及异步任务and服务器部署并且运行全部过程
  5. mysql自动获取时间列_mysql自动获取时间日期的方法
  6. 完整、详细的MySQL规范
  7. 唱歌腹式呼吸法的运用技巧
  8. 解决VirtualBox配置静态ip和连外网的问题
  9. go语言 json -转载
  10. 单片机方案设计红外人体测温仪方案
  11. MPAndroidChart 饼状图 文字重叠问题完美解决
  12. 淮阴工学院计算机科学讲师,淮阴工学院计算机与软件工程学院统战人士工作业绩...
  13. E+H 超声波液位计FMU40-ARD2A2 应用优势及应用领域
  14. C语言公制长度转英制长度,英制换算(英制长度转换公制长度换算)
  15. 让海航买不起的当当究竟值多少钱?90亿够不够?
  16. 牛客每日练习----珂朵莉与宇宙,Forever97与寄信,Number
  17. 最新版 FatFS f_mkfs 详解
  18. 复位IC,低电压检测IC PJ809
  19. 2022-2028年中国草炭行业市场深度分析及发展趋向分析报告
  20. 蔚来大逆转:去年最惨,现在最富

热门文章

  1. FTRL-Proximal
  2. 无盘服务器费用,无盘系统真的省钱吗?
  3. mysql创建表设置自增_mysql 创建表并设置主键自增
  4. JS生成二维码以及点击下载二维码
  5. PC版老毛桃U盘启动装机器
  6. 我的世界java肥料桶_我的世界:堆肥桶太垃圾?老MC告诉你5个它的“正确用法”!...
  7. 4am永远 鼠标按键设置_血手幽灵V8M Max游戏鼠标怎么样?到底值不值得入手?
  8. 多模态大模型综述: LLaVA, MiniGPT4
  9. 离子交换树脂技术干货
  10. TP-LINK实习生总结