 
                        关于Koala
 Koala是一个便捷,轻巧的新型面向对象的javascript框架,综合各种主流框架的特点,支持级联代码,面向对象,传统方式的代码风格, 底层代码简单易懂,可扩展,可移植性性强,可以快速的构建简单的页面交互组件,使构建的组件代码适合在各种团队内分发协作。 如果您是一位JSer,或者想成为一名JSer,Koala会辅助您快速上手JS,减少诸多重复而枯燥的原生方法调用, 从而专注于程序应用逻辑的实现,使得代码更加的健壮。另外如果您被各种"$"符号搞的晕头转向的时候,那就尝试一下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>
 
                                 
                        
                        