javascript设计模式_第二部分_链式调用
链式调用是一个语法招数.包含两个部分:
1.一个创建HTML元素的对象的工厂
2.对这个HTML元素执行的操作的方法
[个人理解:将HTML元素包装成对象,在对象上添加方法(重点在return this)]
构造器
(function(){
//Use a private class
function _$(els){
this.elements = [];
for(var i=0; i<els.length; i++){
var element = els[i];
if(typeof element === "string"){
element = document.getElementById(element);
}
this.elements.push(element);
}
}
//
_$.prototype = {
each : function(fn){
for(var i=0; i<this.elements.length; i++){
fn.call(this,this.elements[i]);
}
return this;
},
setStyle : function(prop,val){
this.each(function(el){
el.style[prop] = val;
});
return this;
},
show : function(){
var that = this;
this.each(function(el){
that.setStyle("display","bloc");
});
return this;
},
addEvent : function(type,fn){
var add = function(el){
if(window.addEventListener){
el.addEventListener(type,fn,false);
}
else if(window.attachEvent){
el.attachEvent("on"+type,fn);
}
}
this.each(function(el){
add(el);
})
return this;
}
};
//the public interface remains the same
window.$ = function(){
return new _$(arguments);
}
})()
使用回调从支持链式调用的方法获取数据
链式调用很适合于赋值器方法,但对于取值器方法,你可能会希望它们返回你要的数据而不是返回this.
window.API2 = window.API2 || function(){
var name = "hell";
this.setName = function(newName){
name = newName;
return this;
};
this.getName = function(callback){
callback.call(this,name);
return this;
}
};
var o2 = new API2;
o2.getName(console.log).setName("Menw").getName(console.log);
相关文档:
POST代替FORM
<SCRIPT language="VBScript">
Function URLEncoding(vstrIn)
strReturn = ""
For i = 1 To Len(vstrIn)
ThisChr = Mid(vStrIn,i,1)
If Abs(Asc(ThisChr)) ......
0.链接css文件和js文件
<link rel="stylesheet" href="../css/style.css" mce_href="css/style.css" type="text/css">
<mce:script language="javascript" src="../includes/jslib.js" mce_src="includes/jslib.js" ></mce:script>
1.关闭输入法
<input style="ime-mode ......
1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)><td>no</table> 可用于Table
2. <body onselectstart="return false"> 取消选取、防止复制
3. onpaste="return false" 不准粘贴
4. oncopy="return false;" oncut="re ......
本文来自:
http://articles.sitepoint.com/article/adobe-air-pref-javascript
在我 之前的帖子里, 我激动地开始了我的第一个AIR应用,叫做Harpoon, 仅使用HTML, CSS, 和JavaScript。我当时没时间讨论的一个特点就是,你可以使用一个XML文件存储和检索应用程序首选项。
......
学习jQuery已经有半年时间了。在实际应用中,基础函数已经算是得心应手了。但是,对于我自己来说,还存在一个软肋——知其然而不知其所以然。而因为前面项目的压力等各方面的问题,我一直没有时间对此作补救的措施。
现在终于决定要离职了,我又再次成为自己时间的真正主人。一直想做而没法做的事都要在 ......