代码改变世界

JavaScript库 Sparrow v0.1.1发布,一个类miniJQ的lib

2012-07-31 23:41  飞魚  阅读(510)  评论(3编辑  收藏  举报

零零碎碎的折腾俩个礼拜终于算是完成了这个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));

事件的绑定

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

例如 S('li').on('click',function(){ alert(S(this).text());  })

快捷事件

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

触发事件

S('li').click();

事件的删除

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

事件委托

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

如S("#ul").delegate('li','click',function(){....})

委托的删除

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的如S.ajax(url,data).then(...).then(...)里面可再次ajax

如S.ajax({url:xxx,type:'GET',dataType:'html',}).then(function(res1){

   return S.ajax({url:xxx,type:'GET',dataType:'html',}).then(function(res2){

    var a=res1+res2;

    return a;

  })

},function(b){  

  alert(b)

});

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

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

//在ajax全部完成时触发,数组arr的结果顺序为写入ajax的顺序 如arr[0]返回第一个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...等等..

辅助方法

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

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

Sparrow 90%接口与JQ一样,使用时可以用$,如果过程中不能满足需要可直接替换为JQ库

注 此版本不包含动画功能,bug的存在在所难免,欢迎指正..

QQ交流群22213453

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