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