今天上了下mootools的主站,发现1.1 released。
看了一下,主要的新特性如下:
一.更快的速度,兼容性和全方位优化
mootools在速度上面进行了很大的优化,比较突出的是在CSS选择器方面(不仅仅在实现逻辑方面进行优化,XPATH被在所有支持的浏览器中启用 )
二.更加新颖的事件系统
1.自定义事件:提供了一套api来提供定义自定义事件。比如mootools自带的mouseenter,mouseleave,domready就是这类自定义事件。
2.Element::cloneEvents提供了事件的复制
如:note.clone().cloneEvents(note); //复制note对象并且把原来note对象上的事件监听也复制过去
三.提供更多的Element的方法及新的Element构造方式。
例如新的构造Elment如下:
对比原先的功能对等的构造方式:
*新方法:
Element::set - 功能如同新的构造方法的第二个参数一样,可以给Element添加各种属性
Element::hasChild - 判断是否内部含有所给出的子元素
*改进的方法:
Element::setStyle - 对于没有明确给出单位的数值型值,将默认为单位是'px'
Element::adopt - 新版本支持多个元素(这个非常不错,很方便)
四.元素过滤器
利用新的元素过滤器,可以对使用$$得到的元素进行进一步的归纳。这些将不需要Element.Selectors,而只使用原生的tag名选择过滤方法(应该速度上快一点吧)
一下例子中将不会用到Element.Selectors:
$('div').filterByClass('myClass');
而这个会用到:
$('div.myClass');
更真实的例子:
$('myElement').getChildren().filterByClass('myClass');
五.更加完善的Ajax功能
基本的Ajax实现逻辑从Ajax类中转入到了XHR类中了。
其他提供的一些更加强大的方法:
Ajax::cancel - 可中断正在执行的请求。如果启用了‘autoCancel’选项,则当发出新的请求的时候自动中断当前请求
Ajax::evalScripts - 加强了全局的eval及自动执行Content-Type为javascript的返回内容
postBody选项更名为data,因为现在XHR可以分别接受get和post方法提交的数据
六.Hash.Cookie和Group
Hash.Cookie是一个扩展的Hash类,它可以自动或手工的保存或加载在Cookie中以JSON格式存储的数据
Group - 可以对元素和事件进行分组处理的类(用法可以参见我前面的文章)
七.工具集
1)新或增强的工具方法:
$defined , $time , $type
2)新的Array方法:
Array::getLast , Array::getRandom , Array::merge ,Array::include
3)新的String方法:
String::contains , String::escapeRegExp
4)新的Number方法:
Number::times(好Ruby啊!) , Number::limit , Number::round
5)浏览器检测
加入了window.webkit419 , window.webkit420,而window.khtml已经被作为过期api
八.增强的垃圾收集机制
九.其他的增强
1)Accordion::addSection可以用来在向一个已经创建的Accordion中添加更多的元素
2)Sortables变得更加稳定,以及不依赖于Drag.Move
3)新的Fx.Transtions,它已经变得更加的可配置
4)Fx.Slide允许border和margin
5)Element::getStyle现在已经全面支持padding/margin/border(包括针对IE的width/height的修正)
十.变更的API
一些过期的api在v1.1中还是能用,但是,在v1.2中将作删除。
1.Ajax的postBody变更为data
2.Array::test被Array::contains替代
3.Object.extend,Object.merge和Object.Native现在已经推荐使用$extend, $merge,$native
4.Window.onDomReady被作为过期API,取代它的是'domready'这个自定义事件,如:
window.addEvent('domready', fn).
5.Hash::each的功能行为已经变更成和$each所提供的功能等价的行为。
6.Hash::empty的功能变为清空所有hash键值(原来的功能是判断hash是否为空,现在等价的功能由Hash::length提供)。
7.window.khtml由window.webkit取代