Archive for the ‘Javascript’ Category

json文本与对象的转换

Tuesday, April 14th, 2009




<script language="javascript" src="json2.js"></script> var people = { "programmers": [ { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" }, { "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" }, { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" } ], "authors": [ { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" }, { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" }, { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" } ], "musicians": [ { ...

jquery与prototype的问题

Sunday, November 30th, 2008




一个页面用了jquery就不能再定义$函数 ,或者使用prototype,否则会出现问题!

Javascript class的创建

Sunday, November 30th, 2008




javascript的class建立是个有意思的话题, 确切的说, OO的javascript就是比较有趣的, 因为javascript并没有在设计的时候定位为OO. 下面的文章是转的别人的, 集中于话题"javascript语言中的Class 的创建" 在Javascript中构建一个类有好几种方法: 1.Factory 方式 function createCar(){ var car  =  new Object(); car.color="b"; car.length=1; car.run=function(){alert("run");} return car; } 定义这么一个函数之后,就可以用: var car1  =  createCar(); var car2  =  createCar(); 来创建新的对象,这种方式的问题是每一次创建一个car对象,run Function也都必须 重新创建一次.浪费内存 2.Constructor方式 function Car(){ this.color="b"; this.length=1; this.run=function(){alert("run");} } var car1=new Car(); var car2=new Car(); 这是最基本的方式,但是也存在和factory方式一样的毛病 3.prototype方式 function Car(){ } Car.prototype.color="b"; Car.prototype.length=1; Car.prototype.run=function(){alert("run");} 这个方式的缺点是,当这个类有一个引用属性时,改变一个对象的这个属性也会改变其他对象得属性 比如: Car.prototype.data1=new Array(); var car1=new Car(); var car2=new Car(); car1.data1.push("a"); 此时,car2.data也就包含了"a"元素 4.Prototype/Constructor杂合方式 function Car(){ this.color="b"; this.length=1; this.data1=new Array(); } Car.prototype.run=function(){ alert("dddd"); } 这种方式去除了那些缺点.是目前比较大范围使用的方式 5.动态prototype方式 function Car(){ this.color="b"; this.length=1; this.data1=new Array(); if(typeof Car.initilize=="undefined"){ Car.prototype.run=function(){alert("a");} } Car.initilize=true; } 这几种方式中,最常用的是杂合prototype/constructor 和 动态prototype方式

firefox使用test正则时应小心使用/g

Sunday, November 23rd, 2008


分别输入test1,test12,test123试试,我自己在Firefox下分别为true,false,true <input id="test" value="test" onchange=testFun(this) /> <script> function testFun(e){ alert(e.value+":"+/^[a-z0-9_]{4,16}$/gi.test(e.value)); } </script>

防google自定义主页的可拖拉层效果

Tuesday, May 20th, 2008


JavaScript Google IG Drag Demo Author: 饿郎 Last Modify: 2008-01-21 22:20 这是一个关于 JavaScript 仿 google 个性化主页拖拽效果的简单的 Demo,在 IE 6 , FireFox 1.5 , Opera 9 下测试通过。 文章链接: http://www.jrgz2008.com/blog/post/code/drag-google.html 下载

jquery的ajax用法

Thursday, April 24th, 2008


suggestion例子: <script type="text/javascript" src="../libs/jquery.pack.js"></script> <script type="text/javascript"> function lookup(inputString) { // 计算div左上角的位置 var x = (document.body.clientWidth-100)/2; $('#suggestions').css("left",x+"px"); if(inputString.length == 0) { // Hide the suggestion box. $('#suggestions').hide(); } else { $.post("../include/rpc.php", {queryString: ""+inputString+"",ct:"<?=$city?>"}, function(data){ if(data.length >0) { $('#suggestions').show(); //alert(data); $('#autoSuggestionsList').html(data); } }); } } // lookup function fill(thisValue) { $('#q').val(thisValue); setTimeout("$('#suggestions').hide();", 200); } </script> <INPUT size="60" name="q" id="q" autocomplete = "off" onkeyup="lookup(this.value);" onblur="fill();" ><br> <div class="suggestionsBox" id="suggestions" style="display: none;"> <img src="../upArrow.png" style="position:relative;top: -12px; left: 20px;" ...