Author Archives: jkl

js类,构造函数内添加方法,与prototype添加方法的时序差异

看下面的例子:

	$('button.b').click(function(){
		var d = new O1();
		d.ooo();
		d.oo();
		function O1(){
			this.ooo = function(){
				alert('sss');
			}
		}
		O1.prototype.oo = function(){
			alert('ss');
		}
	});

点击按钮,首先会弹出“sss”,标识ooo()执行了,但是,之后会报错:”d.oo is not a function“
具体原因,我猜是这样:
再new O1的对象的时候,回去找O1的构造函数“function O1()”,然后执行这个构造函数的时候,将ooo()方法添加给O1类,但这时并不会执行构造函数之外的东西
而“O1.prototype.oo”会按照顺序,执行完前面的代码后,再添加oo()

jquery模板方法

偶然发现了jquery模板方法tmpl(),看起来还不错:

<ul id="movieList"></ul>
<script id="movieTemplate" type="text/x-jquery-tmpl">
    <li><b>${Name}</b> (${ReleaseYear})</li>
</script>
<script type="text/javascript">
    var movies = [
        { Name: "The Red Violin", ReleaseYear: "1998" },
        { Name: "Eyes Wide Shut", ReleaseYear: "1999" },
        { Name: "The Inheritance", ReleaseYear: "1976" }
    ];
    $( "#movieTemplate" ).tmpl( movies )
         .appendTo( "#movieList" );
</script>

转自:http://api.jquery.com/tmpl/

Javascript 的private, public 属性和方法

         function Base() {
                // private attribute
                var i = 2;
 
                // public attribute
                this.k = 3;
 
                // private method
                function setI(j) {
                    i = j;
                }
 
                // public method
                this.resetI = function() {
                    setI(0);
                };
 
 
                // public method
                this.getI = function() {
                    return i;
                }
            }
 
            // public attribute
            Base.prototype.j = 1;
 
            // static attribute
            Base.l = 4;
 
            // public method
            Base.prototype.getJ = function() {
                return this.j;
            };
 
            // static method
            Base.setL = function(m) {
                Base.l = m;
            }

转自:http://sinkiangcai.blog.163.com/blog/static/77664420084702020485/

js取数组并集

/**
 * a1/a2为要合并的两个数组
 */
function arrIntersection(a1, a2){
    var ao = {};
    for(var i = a1.length - 1; i &gt;= 0 ; i--){
        ao[a1[i]] = true;
    }
    var ai = a1.concat([]);//防止a1被改变
    for(i = 0; i &lt; a2.length; i++){
        if(!ao[a2[i]]){
            ai.push(a2[i]);
        }
    }
    return ai;
}

[转]细数那些沉迷游戏帝

近日,一名美国演员作为游戏《刺客信条》的忠实粉丝发表了一系列疯狂的言论,他声称自己是一名刺客,并坚决的相信游戏里所描述的历史是真实存在的。他还如此说到:“我们一直都在遵照教皇的命令行事,前往各处暗杀不同的目标。我们是来自罗马教廷的刺客。”如此沉迷游戏的人并不只有他一个,下面就来看看还有哪些“游戏沉迷帝”

为游戏变卖传家宝

上个月,有媒体报道,一名学生为打游戏执意卖掉爷爷的私藏名画。他告诉大家自己玩网游两年多了,已经花了2万多元。当专家问他为何因为一个网络游戏就要变卖爷爷的藏画时,他说:“我这么做都是为了部落,只要能打败巫妖王,一切都是值得的。”对于专家的劝说,他自始至终都是保持藐视的态度,并告诉专家:“你们没有玩过,是不会知道其中奥妙的。”

沉迷网游冒充交警开罚单


今年26岁的费某是成都人,长期没有正当职业,平时就喜欢玩游戏打发时间,CS据说是他的最爱。某日,他看见一名交警正在对违章车辆进行处罚,就想我在游戏里也是警察,我也可以装成警察,不仅能穿警服还可以开罚单,赚点钱。于是,他找到一家专门卖协警服装的专卖店,购买了一套协警衣服以及警棍、手电筒、收纳包等警用装置。然后费某就真的对那些路边的车辆进行“处罚”,不过没想到被司机识破,司机当场报警,费某就这样悲剧了。

丈夫玩传奇声称卖儿子


一男子尽管已经结婚了,但是依然“沉迷”于游戏,曾经七天七夜几乎不睡觉的玩《传奇》。并且为了游戏会趁家人不在,将电视和冰箱等家电贱卖,然后跑到网吧玩游戏,吃住睡觉都在网吧直到身上的钱花光。更离谱的是,没钱了向母亲要钱,母亲知道他要去网吧玩游戏就表示拒绝,他还威胁母亲:“不给钱就把你孙子卖掉!”

沉迷游戏六年后起诉开发商


美国男子Craig Smallwood,在从2004年到2009年的六年时间里,他一直在玩NCSoft的网络游戏《天堂2》。在这过去的六年,他几乎没有离开电脑,一共在游戏里花费了超过20000小时,创下一个令人惊叹的记录。当他终于醒悟过来的时候,向当地法院起诉韩国游戏开发商NCSoft,理由是“NCSoft的网游《天堂2》使人沉迷,浪费了时间,对身心造成危害,而开发商却没有在游戏里提示这一点”。

玩家沉迷游戏失性趣


《重庆商报》曾经刊登了这样一个故事,奶嘴男与宝贝女是姐弟恋,在结婚后,奶嘴男沉迷于网游中,完全忽略家庭责任。甚至连生活琐事,都要劳烦父母帮助。在玩游戏入迷的时候,完全忽略身边妻子的存在,叫外卖也只叫一份。离奇的是,奶嘴男对宝贝女完全失去了“性趣”,一天到晚都在打游戏。

地震了也要玩游戏

在前不久的日本9级大地震里,有这么一名宅男,在其他人都已跑出屋子之时,竟然临危不惧,坦然笑对地震淡定的继续进行《使命召唤:黑色行动》的线上对战,然后完成了五个击杀,堪称是人类历史上唯一一个在地震中取得的游戏击杀,中途不得不停下来一下是因为电脑都差点快倒了。
————-
原帖:http://games.sina.com.cn/o/n/2011-04-11/1013488827.shtml

手机挂了

刚用了半年的HTC G7,这段时间经常无故重启,昨天,干脆启不来了

大概是从一周前装了一个游戏开始,进入游戏玩不了两分钟,手机就重启了,并且,启来以后,不知是过热还是怎么的,还会再次重启,只能把电池抠出来,放一会,才能启得来。后来,把这个游戏卸载了,但是再进其它诸如GPS等程序也会重启……….

前天在杭州,出门前把回宾馆的路线图从google地图拍到了手机里,宾馆详细地址/电话也在手机里~~玩了一下午,晚上打车回去时,结果,手机不行了~~重启N次还是启不来~~找不着路了………..幸好,笔记本在背包里,出门时mac时待机,地图还保留着

昨天下午,不过是听了几分钟音乐,便再也启不来了,一直到现在~~

刷机?

但是试了“RECOVERY”/”CLEAR STORAGR”都无效,不知道刷机能不能有用

或者干脆再换一个~~不知道palm怎么样


春花秋月~问君能有几多愁

很美的词~~
-----------
虞美人
【南唐】李煜
春花秋月何时了?往事知多少。
小楼昨夜又东风,故国不堪回首月明中。
雕栏玉砌应犹在,只是朱颜改。
问君能有几多愁,恰似一江春水向东流。

javascript,少写“var”造成的面向对象的bug

下面这段代码,如果按照纯面向对象习惯的理解,当点击test按钮时,应该会alert一个“pp11”,和一个“pp22”,然而,实际情况时,会连续alert两个“pp22”~~

$(document).ready(function(){
  var t1 = new TST('pp11');
  var t2 = new TST('pp22');
});
//类
function TST(pars){
  this.p1 = pars;
  this_ = this;
  $('button.test').click(function(){
    alert(this_.p1);
  });
}

出现这种情况的原因,我想应该是出在this的中间变量“this_”上:创建t1,t2对象时,test按钮被绑定了两次click事件,传入的参数都是this_,但创建t2时的this_覆盖了t1的this_,所以,再点击按钮时,实际传入的是两个t2

var this_ = this;

上面的一个小小的改动,证实了我的猜测:this_前面加了var以后,this_便不会相互覆盖,程序正常了!

jquery bind/unbind的使用

使用jquery的bind方法可以为一个对象的一个事件绑定绑定多个处理函数,甚至可以多次绑定一个方法,比如:

$(xxx).bind(‘click’, fun1).bind(‘click’, fun2).bind(‘click’, fun1);

而unbind用于删除绑定的方法,比如$(xxx).unbind(‘click’)

……

但是,如果只想删除fun2哪?以前看得很多jquery里都没有关于这种操作的介绍,所以自然就一直以为只能整个的将click处理调,今天试了另外一种操作:$(xxx).unbind(‘click’, fun2),可以解除fun2的绑定

住:$(xxx).unbind(‘click’, fun1),会将之前注册的两次fun1全部删除掉

---------------------

补充:

在jQuery下使用 $(selector).unbind(‘hover’)无效,可以使用如下方法代替:
$(selector).unbind(‘mouseenter’).unbind(‘mouseleave’);
或:
$(selector).unbind(‘mouseenter mouseleave’);

可以发现hover事件是由mouseenter和mouseleave组成,以区别mouseover和mouseout。
在unbind它的这两个事件后,不会对mouseover和mouseout事件造成影响。

javascript 刷新页面的方法

1. window.location.reload

<script language=”JavaScript”>
function myrefresh(){
window.location.reload();
}
setTimeout(‘myrefresh()’,1000); //指定1秒刷新一次
</script>

2. 刷新包含该框架的页面用
<script language=JavaScript>
parent.location.reload();
</script>

3. 子窗口刷新父窗口
<script language=JavaScript>
self.opener.location.reload();
</script>
( 或 <a href=”javascript:opener.location.reload()”>刷新</a>   )

4.  刷新另一个框架的页面用
<script language=JavaScript>
parent.otherFrameID.location.reload();
</script>

5. 使用meta,自动定时刷新
<meta http-equiv=”refresh” content=”20″>
其中20指每隔20秒刷新一次页面.

参考:http://www.cnblogs.com/lmjob/archive/2008/08/11/1265164.html