08月14, 2012

JavaScript库 Sparrow ,一个miniJQ的lib

零零碎碎的折腾俩个礼拜终于算是完成了这个lib,名为Sparrow(麻雀),目前压缩版15k,虽没jq那么强大,但正如其名五脏俱全,一般的应用都能应付了....

Sparrow参考了网上的一些文章及其他js框架,在此感谢~

至于这个lib的特点一个类miniJQ的库大家应该都明白的差不多了... (神马跨浏览器啊,链式调用啊,write less do more等)

下面看看它到底都能干什么  

Sparrow以 S 或 $ 命名调用,首先就是熟悉的domReady

S(function(){ //.... });

其次是简单的选择器支持

#id,#id tag,#id .cls,tag,.cls,tag.cls

如 S(#id tag) 可以打印查看 S.log( S(cls) );

常用的方法

parent,children,prev,next,siblings等

事件的绑定

S(tag).on(type,fn) 也可以用bind

快捷事件

S('li').click(function(){....});

触发事件

S('li').click();

事件的删除

S(tag).off(type) 指定type删除此种类型的事件,不指定则删除全部

事件委托

S(#id).delegate(selector, type, handler)

委托的删除

S("#ul").undelegate(type, selector)

自定义事件的订阅发布

S.subscribe('myclick',fn)

S.publish('myclick')

AJAX的支持

S.ajax(url,data) 或 S.ajax({...}),如

S.ajax({url:xxx,type:"GET",dataType:"JSON",}).then(function(){   
     alert("success") 
},function(){  
     alert("err") 
});

结果是可thenable的,如果then有返回值,则下一个then的参数为此返回值,如果没有返回则为原来获得的结果

类似的还有S.when(S.ajax(...),S.ajax(...),function(arr){...})

在ajax全部完成时触发,数组arr的结果顺序为写入ajax的顺序

对dom的支持

S(tag).css('display','') 也可设置多个 S(tag).css({...})

获取 S(tag).css('display');

隐藏显示的快捷设置 S(tag).show() S(tag).hide()

类似的

.attr .data .position .addClass .hasClass .append .after .remove .html 等等...

异步方面

增加了load方法加载js,css文件,loadJsonp方法跨域请求数据,同时还内置了一个精简的js模版引擎 S.tmpl(str, data),js代码写在 <% %> 中...

模块加载

S.require(name,[deps],callback)

S.define([deps],callback)

S.require接受3个参数,加载的模块名,依赖模块,回调函数,依赖模块可有可无..

S.define接受2个参数,依赖模块,回调函数,依赖模块可有可无..

辅助方法

S.isFunction(obj),S.browser,S.JSON...

还有什么等你去发现...

项目地址 https://github.com/ygm125/Sparrow

本文链接:https://gmiam.com/post/sparrow-minijq-lib.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。