`
zhangyaochun
  • 浏览: 2613183 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

探究一下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.addRule
             for(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){
                   //采用delete
                   delete Jss.rules[sSelector];
                   //给标志位表示删除操作成功
                   return true;
             }

             //给标志位表示没有执行删除 
             return false;
       },


       /**
        *@name getRuleData
        *@param sSelector {String}   selector字符串
        *@return {Object} 数据对象
        * 
       /
       getRuleData:function(sSelector){
              //直接返回Jss.rules对象对应的key为sSelector的value
              return 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为value
             data[attributeName] = value;
             //调用Jss.addRule
             Jss.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)){
                  //采用delete
                  delete 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] || {};
              //获取指定的attributeName
              return data[attributeName];
       }

});

 

 

   结论

 

  • 上面数据存取其实都是操作的Jss.rules这个对象
  • sSelector是有规范要求的: 
  1. #id    
  2. @name  
  3. .className  
  4. tagName

 

  • 大小: 20.5 KB
分享到:
评论

相关推荐

    qwrap javascript框架,qwrap

    QWrap 是一个基于JavaScript的轻量级框架,旨在简化前端开发过程,提高代码的可维护性和性能。QWrap 的核心理念是提供一个简洁、高效且易于学习的API,让开发者可以快速构建交互丰富的Web应用。 在QWrap中,"wrap...

    QWrap是百度有啊前端团队推出的一个javascript框架

    QWrap,源自百度有啊前端团队的创新之作,是一个专为JavaScript开发打造的高效、轻量级框架。这个框架的设计目标是简化Web应用的构建过程,提高开发效率,并且优化前端性能。QWrap的核心理念是模块化、组件化,使得...

    newpages_incognito.zip

    3. **grid9_qwrap.js**:这是一个JavaScript文件,可能包含了处理网格布局和可能的查询功能的代码。"qwrap"可能代表查询包装器,用于处理用户的搜索请求或交互。 4. **bg_search_bar.png、bg-benefits.png**:这些...

    newpages_incognito

    `qwrap`可能是一个用于封装或简化操作的工具,而`api.js`可能包含了与服务端交互的API(应用程序编程接口),用于动态加载数据或者处理用户交互。 4. **bg-benefits.png**、**network-broken.png**、**welcome.png*...

    js中关于String对象的replace使用详解

    今天在读Qwrap的源码stringH时里边有个 代码如下: format: function(s, arg0) { var args = arguments; return s.replace(/\{(\d+)\}/ig, function(a, b) { return args[(b | 0) + 1] || ”; }); } 它的使用方式是:...

    IE8提示Invalid procedure call or argument 异常的解决方法

    4. QWrap代码错误点:在这个问题中,还涉及到了QWrap,这是一个在旧版浏览器中使用的兼容性封装,用于模拟一些现代浏览器提供的DOM操作方法。在这个例子中,QWrap的nativeQuery函数处理了查询选择器,但在某些情况下...

    程序模型与表达_月影.pptx

    在Qwrap设计中,就运用了函数式编程的思想。另一方面,面向对象编程注重通过类和对象来模拟现实世界中的实体,实现代码的复用,如猫类的创建,不同的猫对象可以有不同的特性。 在程序模型与表达中,我们需要不断地...

    HP网卡驱动

    压缩包子文件的文件名称列表看起来并不直接与HP网卡驱动相关,因为它们通常是网页设计或前端开发的资源文件,如CSS样式表(grid9_style.css)、HTML页面(new_page.html)、JavaScript脚本(grid9_qwrap.js、grid9_...

    newpages_incoh

    `grid9_qwrap.js` 是一个JavaScript文件,JavaScript通常用于增加网页的交互性和动态功能。在这个项目中,它可能是Grid9布局的JavaScript实现,用于处理用户交互、动画效果或者页面元素的动态行为。 `bg_search_bar...

    jquery-suggest:jQuery的建议

    而我们过去有基于 Qwrap 的 suggest 组件,经过长时间业务使用,已经比较成熟,所以有了将它改造为 jQuery 版本的想法。 经过两天的修改、调试和修复 bug,基本完成了大部分工作。 基本使用方法 引入必要的 css 和 ...

    前端架构技术选型文档文档

    为了更好地满足不同业务需求,各大互联网公司纷纷研发了自己的前端框架,如阿里的Kissy和Arale、腾讯的JX、百度的Tangram以及360的QWrap等。本文旨在探讨前端架构技术选型的原则与方法,并通过对比分析当前主流前端...

    window.event快达到全浏览器支持了,以后使用就方便了

    QWrap库中的`QW.EventH.getEvent`静态方法提供了一个跨浏览器获取事件对象的解决方案。它首先检查是否已经提供了`event`对象,如果没有,则尝试从`element`对象或`window`对象中寻找。如果所有尝试都失败,它会遍历...

    javascript框架设计之浏览器的嗅探和特征侦测

    此外,还有国内浏览器的判定方法,如Tangrame或qwrap,它们主要关注IE、WebKit、Blink内核的浏览器。而对于事件的支持侦测,通常使用prototype的核心成员kangax的方法。这涉及到检测浏览器是否支持某种特定事件,如...

    浅谈JavaScript 框架分类

    这些框架如Dojo、YUI、kissy、qwrap和mass,通过模块化来管理多个JavaScript文件,确保了代码的组织和加载效率。模块化是JavaScript工业化的重要标志,它提倡通过清晰的接口组合简单模块,以应对复杂软件的挑战。 ...

Global site tag (gtag.js) - Google Analytics