关于Koala
Koala是一个便捷,轻巧的新型面向对象的javascript框架,综合各种主流框架的特点,支持级联代码,面向对象,传统方式的代码风格, 底层代码简单易懂,可扩展,可移植性性强,可以快速的构建简单的页面交互组件,使构建的组件代码适合在各种团队内分发协作。 如果您是一位JSer,或者想成为一名JSer,Koala会辅助您快速上手JS,减少诸多重复而枯燥的原生方法调用, 从而专注于程序应用逻辑的实现,使得代码更加的健壮。另外如果您被各种"$"符号搞的晕头转向的时候,那就尝试一下Koala吧!
框架地址
开发版
<script type="text/javascript" src="http://mat1.gtimg.com/www/js/Koala/Koala.dev.1.5.js"></script>
Min版
<script type="text/javascript" src="http://mat1.gtimg.com/www/js/Koala/Koala.min.1.5.js"></script>
更新日志
2011年11月17日 Koala1.0正式版发布
修正loose.dtd下事件绑定的问题
增加了K.A.each返回方法,K/KK.select, K/KK.getBy,K.getByTagName方法。
文档样式相关增加了css操作,getStyle,setStyle操作,增加了Kdom属性,Kdoms属性的文档片
优化了sizzle选择器的文档
优化文档的查看体验
2011年12月2日 Koala插件机制完成
实现了插件功能,并完成插件开发规范文档
更改了insert方法的使用
增加了Hash对象和迭代Enumerable对象
增加了K.String的include包含方法,toQueryParams方法
优化了快速选择符K的效率,
调整了K.A.each方法的返回值
编写了插件K.ajax并完成对应文档
修正了page.x,page.y,client.x,client.y文档
12月8日
修正了K/KK().append方法的使用
2012年1月4日
增加了文档搜索API的功能
添加了width,height,pageX,pageY,parentX,parentY,html,attr功能和对应文档
修正个个别api名称过长的问题
2012年8月27日 发布1.4.1版本
完成Qfast与Koala整合
添加顶层窗口K().scrollTop()和K().scrollLeft()的方法
添加顶层窗口鼠标滚轮:K().bind('mousewheel',function(){}),拖动滚动条的事件:K().bind('scroll',function(){})
分发了发布系统公共页面片以供使用
简化了KK多节点到单节点的节点转化形式,解释,若KK(selector)选择为一个节点,则自动转化为单节点kwdom,代替以往KK(selector).item(0)
修正了部分文档bug
2012年11月28日 发布1.5版本
修正IE下调用浏览器私有api console.log出现alert弹层问题
增加parentWrap,childWrap两个新api
增加了选择器选择不到页面节点不会报错的功能,应对编辑手动删除HTML,没有删除js的情况
增加K.debug(1)函数,可精确定位选择器错误。解决bug定位问题
增加选择器HTML属性,可方便的查看到选择到的HTML节点信息
修整了若干文档bug
1.6版本计划:Koala离子CMD模块化
快速入门
Koala以K,KK为入口,在文档中进行对节点的遍历和操作,
首先,K作为框架提供的一个快速的页面ID选择器入口,您可以针对页面中如
<div id="d1">content</div>
进行K("d1")的操作,也可以作为函数加载器进行组件代码载入。
其次,KK作为多元素选择符,可以选择页面的您可以针对页面中诸多如
<div class="class">content</div>
进行K(".class")的选择并附加方法操作。
以下为示例:
1.函数加载器 K 比较 window.onload
<script type="text/javascript"> 如果您还在使用 window.onload = function () { alert("old onload") } 或者 addEvent(window, 'load', function () { alert("old onload") }) 那试一试这个 K(function () { alert('Koala onload') }) </script>
2. ID选择符 K("elem") 比较 document.getElementById("elem")
<script type="text/javascript"> var $ = function (elem) { return document.getElementById(elem) }; $("elem") 用下面单元素选择符K可以替代 K("elem") </script>
3. 多元素选择符 KK("selector")比较document.getElementsByTagName("selector")
<script type="text/javascript"> KK("span") 选取所有页面中的span元素 KK(".class1") 选取页面中所有节点class名称为class1的元素 KK("#test") 选择页面中节点ID为test KK("#test" ".class1") 选择页面中节点ID为test和节点class名称为class1的元素。 </script>
4. 支持链式方法调用
<script type="text/javascript"> K('appendtest1').addClassName("aaa").removeClassName("aaa"); KK("span").addClassName("enen").append("LA") </script>
5. 支持面向对象的编程模式
<script type="text/javascript"> var Animal = K.fn.create({ init: function (name, sound) { this.name = name; this.sound = sound; }, speak: function () { alert(this.name + " says: " + this.sound + "!"); } }); var Elephant = new Animal("Elephant", 'nnnnnnn'); Elephant.speak(); // 继承父对象Animal,创建一个Snake对象 var Snake = K.fn.create(Animal, { init: function (Ksuper, name) { Ksuper(name, '丝丝丝丝'); //调用夫类的initialize方法初始化参数 } }); var ringneck = new Snake("眼镜蛇"); ringneck.speak(); </script>