Code Monkey home page Code Monkey logo

nej's People

Contributors

genify avatar java0racle avatar jinze avatar leeluolee avatar nicholaslee119 avatar rainfore avatar satlxq avatar shhider avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

nej's Issues

chainable 的 _$click 或者通过_$implement的 方法 在混淆时 会报错

主要是混淆工具不会混淆字符串

_$click $after 等倒无所谓 初步是决定 删除这些方法了 没有太好的解决方式,主要是$implement
初步决定 $implement 只允许传入object类型的扩展
即不能

$._$implement("_$method1", fn, options)

只能

$._$implement({_$method1: fn}, options)

不确定是否还有别的接口影响到...

日历组件跨年BUG

文件src/util/calendar
修改前:
p
修改后:

_pro.__doSyncDateShow = (function(){
        var _days = [31,28,31,30,31,30,31,31,30,31,30,31];
        var _isLeap = function(_year){
            return !(_year%400)||!(_year%4)&&!!(_year%100);
        };
        var _getMonthDay = function(_year,_month){
            return _month==2&&_isLeap(_year)?29:_days[_month-1];
        };
        return function(){
            var _year  = this.__year,
                _month = this.__month,
                _date  = new Date(_year,_month-1, 1),
                // 上一个月
                datePrev = new Date(_year, _month-2, 1),
               // 下一个月
                dateNext = new Date(_year, _month, 1),
                _beg = ((7+_date.getDay())-this.__offset)%7,
                _end = Math.min(this.__list.length,
                      _beg+_getMonthDay(_year,_month));
            // sync year and month
            if (!!this.__nyear)
                this.__nyear.innerText = this.__year;
            if (!!this.__nmonth)
                this.__nmonth.innerText = this.__month;
            // offset with limit
            for(var i=_beg,_node;i<_end;i++){
                _node = this.__list[i];
                this.__doSaveDateInfo(
                      _node,_year,_month,i-_beg+1);
                _e._$delClassName(_node,this.__extended);
            }
            // 0 -> begin
            if (_beg>0){
                //_date.setMonth(_month-2||0);
                _year  = datePrev.getFullYear();
                var _monthTemp = datePrev.getMonth()+1;
                var _limit = _getMonthDay(_year,_monthTemp);
                for(var i=_beg-1,_node;i>=0;i--){
                    _node = this.__list[i];
                    this.__doSaveDateInfo(
                          _node,_year,_monthTemp,_limit--);
                    _e._$addClassName(_node,this.__extended);
                }
            }
            // end -> length
            var _length = this.__list.length;
            if (_end<_length-1){
                //_date.setMonth(_month);
                _year  = dateNext.getFullYear();
                _month = dateNext.getMonth()+1;
                for(var i=_end,k=1;i<_length;i++){
                    _node = this.__list[i];
                    this.__doSaveDateInfo(
                          _node,_year,_month,k++);
                    _e._$addClassName(_node,this.__extended);
                }
            }
        };
    })();

chain API

API描述

由于还未最终定稿,大家可以参与讨论下, 并发表下自己看法。

nej 引入部分

所有 第一个参数为节点类型的,都被引入了chainable API , 具体为

class相关

"$addClassName", "$delClassName", "$hasClassName", "$replaceClassName", "_$toggle"

css相关

"$setStyle", "$getStyle","$css3d", "$style", "_$offset",

动画 特效 UI

"$fixed", "$effect", "$fade", "$focus", "$highlight", "$hover", "$page", "$placeholder", "$tab", "$wrapInline"

属性相关

"$attr", "$dataset"

节点

"$remove", "$removeByEC", "_$getScrollViewPort"

杂项

"$dom2xml","$bindClearAction","$bindCopyAction", "$counter"

event相关

"$addEvent", "$clearEvent", "$delEvent", "$dispatchEvent"

以上这些nej主页都有详细介绍不再赘述

新增部分

宗旨就是有理有据,不在破坏原有API调用的前提下新增API(或增强),
所有操作都从

基础部分

  • $()
  • _$add()
  • _$get

逻辑操作

节点遍历部分

节点操作部分

属性部分

事件部分(jQuery Style)

未完待续。。。。。。。。。。。。。。。。

NEJ使用中犯的错 record下

define(['{pro}widget/selectMaterial.js',
    '{pro}widget/prompt.js',
    '{pro}widget/emot.js',
    '{pro}widget/card.js',
    '{pro}cache/mass.js',
    '{lib}util/cursor/cursor.js',
    '{pro}item/material1.js', //若此处多一个*逗号*,在IE8及以下 会报错
],

关于链式调用

@genify

风格选取

  • 走jQuery的老路, 如 Kissy、Tangram。现在已经近乎是最佳实践的方案(因为社区庞大).

缺点是: 1. 二义性(jQuery火了这么久,基本已经熟悉了这个约定) 2. 方法中经常会需要判断是否是单节点,做不同操作,在后面扩展中,迈不开步子容易扯着蛋

  • 延续走变向的prototype、mootools(YUI3也类似, 不过Node跟NodeList的维系要弱的多)的路, 两个接口_$与_$$, 仍然是包装器的形势

缺点是: 1. 两个接口 2. 维护两份包装类(比如有多情况下你的要求只是对所有的这些节点做一次相同的set操作)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.