如何将不依赖jQuery的JS框架封装成可直接使用的工具?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1891个文字,预计阅读时间需要8分钟。
javascript// 定义一个对象var $$=function() {};
// 添加原型方法$$.prototype={ // 去除字符串左边空白 ltrim: function(str) { return str.replace(/^\s*/g, ''); }, // 去除字符串右边空白 rtrim: function(str) { return str.replace(/\s*$/g, ''); }};
js 框架封装//定义一个对象 - 名字是$
var $$ = function() {};
//第二种写法
$$.prototype = {
//去除左边空格
ltrim:function(str){
return str.replace(/(^\s*)/g,'');
},
//去除右边空格
rtrim:function(str){
return str.replace(/(\s*$)/g,'');
},
//去除空格
trim:function(str){
return str.replace(/(^\s*)|(\s*$)/g, '');
},
//ajax - 前面我们学习的
myAjax:function(URL,fn){
var xhr = createXHR(); //返回了一个对象,这个对象IE6兼容。
xhr.onreadystatechange = function(){
if(xhr.readyState === 4){
if(xhr.status >= 200 && xhr.status < 300 || xhr.status == 304){
fn(xhr.responseText);
}else{
alert("错误的文件!");
}
}
};
xhr.open("get",URL,true);
xhr.send();
//闭包形式,因为这个函数只服务于ajax函数,所以放在里面
function createXHR() {
//本函数来自于《JavaScript高级程序设计 第3版》第21章
if (typeof XMLHttpRequest != "undefined") {
return new XMLHttpRequest();
} else if (typeof ActiveXObject != "undefined") {
if (typeof arguments.callee.activeXString != "string") {
var versions = ["MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0",
"MSXML2.XMLHttp"
],
i, len;
for (i = 0, len = versions.length; i < len; i++) {
try {
new ActiveXObject(versions[i]);
arguments.callee.activeXString = versions[i];
break;
} catch (ex) {
//skip
}
}
}
return new ActiveXObject(arguments.callee.activeXString);
} else {
throw new Error("No XHR object available.");
}
}
},
//tab
tab:function(id) {
//如何获取某个父元素下面的子元素
var box = document.getElementById(id);
var spans = box.getElementsByTagName('span');
var lis = box.getElementsByTagName('li');
//两步走
//第一步: 先把上半部分实现
//群体绑定事件 -- 对所有的span绑定事件
//群体绑定事件
for(var i=0;i
= 0; i--){
setStyle(dom[i],key, value);
}
// 如果value为空,则表示获取
}else{
return getStyle(dom[0]);
}
//如果不是数组
}else{
if(value){
setStyle(dom,key, value);
}else{
return getStyle(dom);
}
}
function getStyle(dom){
if(dom.currentStyle){
return dom.currentStyle[key];
}else{
return getComputedStyle(dom,null)[key];
}
}
function setStyle(dom,key,value){
dom.style[key] = value;
}
},
cssNum:function (context, key){
return parseFloat($$.css(context, key))
},
//显示
show:function (content){
var doms = $$.$all(content)
for(var i= 0,len=doms.length;i
英雄联盟
梦幻西游
本文共计1891个文字,预计阅读时间需要8分钟。
javascript// 定义一个对象var $$=function() {};
// 添加原型方法$$.prototype={ // 去除字符串左边空白 ltrim: function(str) { return str.replace(/^\s*/g, ''); }, // 去除字符串右边空白 rtrim: function(str) { return str.replace(/\s*$/g, ''); }};
js 框架封装//定义一个对象 - 名字是$
var $$ = function() {};
//第二种写法
$$.prototype = {
//去除左边空格
ltrim:function(str){
return str.replace(/(^\s*)/g,'');
},
//去除右边空格
rtrim:function(str){
return str.replace(/(\s*$)/g,'');
},
//去除空格
trim:function(str){
return str.replace(/(^\s*)|(\s*$)/g, '');
},
//ajax - 前面我们学习的
myAjax:function(URL,fn){
var xhr = createXHR(); //返回了一个对象,这个对象IE6兼容。
xhr.onreadystatechange = function(){
if(xhr.readyState === 4){
if(xhr.status >= 200 && xhr.status < 300 || xhr.status == 304){
fn(xhr.responseText);
}else{
alert("错误的文件!");
}
}
};
xhr.open("get",URL,true);
xhr.send();
//闭包形式,因为这个函数只服务于ajax函数,所以放在里面
function createXHR() {
//本函数来自于《JavaScript高级程序设计 第3版》第21章
if (typeof XMLHttpRequest != "undefined") {
return new XMLHttpRequest();
} else if (typeof ActiveXObject != "undefined") {
if (typeof arguments.callee.activeXString != "string") {
var versions = ["MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.3.0",
"MSXML2.XMLHttp"
],
i, len;
for (i = 0, len = versions.length; i < len; i++) {
try {
new ActiveXObject(versions[i]);
arguments.callee.activeXString = versions[i];
break;
} catch (ex) {
//skip
}
}
}
return new ActiveXObject(arguments.callee.activeXString);
} else {
throw new Error("No XHR object available.");
}
}
},
//tab
tab:function(id) {
//如何获取某个父元素下面的子元素
var box = document.getElementById(id);
var spans = box.getElementsByTagName('span');
var lis = box.getElementsByTagName('li');
//两步走
//第一步: 先把上半部分实现
//群体绑定事件 -- 对所有的span绑定事件
//群体绑定事件
for(var i=0;i
= 0; i--){
setStyle(dom[i],key, value);
}
// 如果value为空,则表示获取
}else{
return getStyle(dom[0]);
}
//如果不是数组
}else{
if(value){
setStyle(dom,key, value);
}else{
return getStyle(dom);
}
}
function getStyle(dom){
if(dom.currentStyle){
return dom.currentStyle[key];
}else{
return getComputedStyle(dom,null)[key];
}
}
function setStyle(dom,key,value){
dom.style[key] = value;
}
},
cssNum:function (context, key){
return parseFloat($$.css(context, key))
},
//显示
show:function (content){
var doms = $$.$all(content)
for(var i= 0,len=doms.length;i
英雄联盟
梦幻西游

