prototype.js使用详解

prototype.js开拓者手册 对应版本1.4.0 original article by sp Sergio
Pereira

last update: March 30th 2006

一:简介

中文版:THIN

中文版:THIN

终极更新:二零零六-3-31

最终更新:二〇〇六-3-31

看样子一个很好的东西在境内尚无被许几个人使用起来,实乃不爽,所以花了十分的大素养把这一个手册翻译成粤语,由于那篇小说不短,所以,翻译的职业量十分大还要有个别地方日语版也平昔不说精晓,虽得查看源代码,幸实际不是坚持到底做完了,大家打气下啊!^o^prototype.js是叁个相当优雅的javascript底工类库,对javascript做了大气的扩展,并且很好的帮衬Ajax,海外有五个凭仗此类库完成的作用库,也做得很棒。prototype.js不仅仅是三个有超大实用价值的js库,并且有异常高的上学价值,所以小编刚烈提议B/S开拓人士和对JS开荒感兴趣的朋友去浏览部分它的源代码,在那之中有点不清的珠玑,你相对会认为读它的源代码是生龙活虎种享受,当然要读得懂,呵呵。网络也许有人写过1.3版的源码解读,我们能够找来看看。可是1.4版做了相当大的恢宏,所以指望有心上人写出1.4版的源码解读。几点表达:
有朋友说prototye已经有人翻译过了,呵呵,是对的,表达你在此以前关注过它,可是原来翻译的是1.3版的文书档案,1.4版有广概略害的扩大,何况pre_1.5版今后也出去,不地改造相当小。
有朋友说有用多未有翻译地来的,拜托,只是种种艺术的参数表达未有翻,这个注脚超级多都是怎么项目,照旧有空再弄啊,先将就一下,对不起了,翻到那几个程序已经很累人了,究竟有那般长。
做成CHM文书档案的事也只好Sorry,因为作者还未有那个时间,也绝非做过CHM,小编以为制版一下看网页和CHM是基本上吧。

prototype.js 是什么?

prototype.js是什么?

若果你未有动用过有名的prototype.js,那么让小编来报告您,prototype.js是由SamStephenson写的叁个javascript类库。这一个思想玄妙,而且非常标准的类库,能支援您轻轻便松创建有惊人相互影响的web2.0
特性的富客商端页面。

假如您从未应用过有名的prototype.js,那么让自个儿来告诉你,prototype.js是由萨姆Stephenson写的三个javascript类库。这些思虑美妙,况兼万分标准的类库,能扶持你轻便创设有莫斯中国科学技术大学学相互影响的web2.0特色的富顾客端页面。

设若你近些日子尝试选择它,你大概明白到文书档案实际不是小编的三个舍身取义。和在本身原先使用这一个类库的不菲开采者同样,风度翩翩从前,小编只得三头扎进阅读
prototype.js
的源代码和试验它的效果中。作者想,在自己上学完它之后,把本身学到的东西分享给大家是件不错的事。

若是您近年来尝试运用它,你大致精通到文书档案并非笔者的两个烈性。和在自己原先使用这一个类库的比较多开荒者相近,后生可畏初步,小编只可以八只扎进阅读prototype.js的源代码和尝试它的功力中。作者想,在本人学习完它之后,把自家学到的东西分享给大家是件不错的事。

还要,在本文中,作者也将提供三个关于这一个类库提供的objects,classes,functions,extensions那对东东的私下仿效

再正是,在本文中,我也将提供三个关于这一个类库提供的objects,classes,functions,extensions那对东东的野鸡仿效

在阅读那一个文书档案时,熟识 Ruby 的开荒者将会小心到 Ruby
的局部内建类和本类库扩大实现之间足够相近。

在阅读那几个文书档案时,熟稔Ruby的开辟者将会小心到Ruby的有个别内建类和本类库扩充完毕之间丰富相近。

相关作品

连带文章

Advanced JavaScript guide.

Advanced JavaScript guide.

二:一些实用的函数

部分实用的函数

其风姿洒脱类库带有超多预约义的靶子和实用函数,那个东东的指标众目昭彰是把您从部分重新的打字中解放出来

本条类库带有很多预约义的靶子和实用函数,这几个东东的指标显而易见是把您从部分重复的打字中解放出来

2.1 使用$()方法

应用$ 方法是在DOM中利用过度频仍的 document.getElementById(卡塔尔方法的三个便于的简写,就好像这些DOM方法相符,这些主意重回参数字传送入的id的不胜成分。

$(卡塔尔国 方法是在 DOM 中使用过度频仍的 document.getElementById(卡塔尔(قطر‎方法的贰个便利的简写,好似那几个 DOM 方法生机勃勃致,那个措施重回参数字传送入的 id
的特别成分。比起 DOM 中的方法,那个更胜一筹。你能够流传多少个 id
作为参数然后 $(卡塔尔(قطر‎ 重返叁个分包全数须要的成分的二个 Array 对象。

比起DOM中的方法,这些更胜一筹。你可以流传八个id作为参数然后 $(卡塔尔再次来到叁个富含全部供给的要素的多少个 Array 对象。

<HTML> 

 Test Page function test1;alert;}function test2(){var divs = $;for(i=0; i&lt;divs.length; i++){alert;}}This is a paragraphThis is another paragraph

<HEAD> 

除此以外三个益处是,那么些函数能传播用string表示的对象ID,也得以流传对象自己,那样,在确立其余能传两连串型的参数的函数时十三分实用。

<TITLE> Test Page </TITLE> 

行使$F函数是另多少个大收接待的“飞快键”,它能用于重回任何表单输入控件的值,比方text
box,drop-down list。那一个方式也能用成分id或因素自身做为参数。

<script src=”prototype1.4.js”></script> 

function test3(){alert;}
Buchanan, StevenCallahan, LauraDavolio, Nancy

<script>  

采取$H函数把一些对象转变来一个可枚举的和联合数组形似的Hash对象。

function test1(){      

function testHash(){//let's create the objectvar a = {first: 10,second: 20,third: 30};//now transform it into a hashvar h = $H;alert; //displays: first=10&amp;second=20&amp;third=30}

    var d=$(‘myDiv’);      

使用$R是new ObjectRange(lowBound,upperBound,excludeBounds)的缩写。

    alert(d.innerHTML); 

跳到ObjectRange 类文书档案能够观望五个有关此类的完全描述.
那时,大家依然先来看叁个事例以呈现那几个缩写能替代哪些方法呢。其它相关的片段文化能够在Enumerable
对象文书档案中找到。

     

function demoDollar_R(){var range = $R;range.each(function{alert;}

     

使用Try.these()函数

Try.these()
方法使得达成当您想调用分歧的主意直到当中的三个成功日常的这种供给变得特别轻便,
他把黄金年代层层的章程作为参数并且按顺序的三个二个的实行这个方法直到在那之中的壹此中标实行,重返成功实践的老大格局的再次回到值。

function test2(){ 

在下边包车型客车例证中,
xmlNode.text在生机勃勃部分浏览器中好用,但是xmlNode.textContent在另风姿浪漫对浏览器中健康办事。
使用Try.these()措施大家能够赢得平常办事的百般情势的重临值。

    var divs=$(‘myDiv’,’myOtherDiv’); 

Ajax对象

    for(i=0;i<divs.length;i++){ 

地点提到的共通方法丰硕好,可是面前碰到它呢,它们不是最高端的那类东西。它们是啊?你很恐怕本人编辑了那一个以致在你的剧本里面有周边成效的艺术。不过那一个办法只是冰山生机勃勃角。

        alert(divs[i].innerHTML);          

笔者很自然你对prototype.js感兴趣的通首至尾的经过很只怕是出于它的AJAX工夫。所以让大家解释当您须求达成AJAX逻辑的时候,那些包怎么样让它更易于。

    } 

Ajax 对象是贰个预订义对象,由那么些包创设,为了封装和简化编写AJAX
成效涉及的刁钻的代码。
那么些指标满含大器晚成层层的封装AJAX逻辑的类。大家来探视当中多少个类。
使用Ajax.Request类

}</script> 

假定你不行使别的的扶持程序包,你很或许编写了百分百大气的代码来创立XMLHttpRequest对象而且异步的追踪它的历程,
然后深入分析出响应
然后管理它。当你没有供给扶助多于生龙活虎类别型的浏览器时您会感到十一分的辛亏。

</HEAD>  

为了帮忙 AJAX 功效。那几个包定义了 Ajax.Request类。

<BODY>  

假诺你有一个应用程序可以经过url
与服务器通讯。它回到下边那样的XML
响应。

<div id=”myDiv”>  

12341998-01$8,115.3612341998-02$11,147.51

<p>This is a paragraph</p>  


Ajax.Request指标和服务器通讯况兼获得这段XML是很简单的。下边包车型地铁事例演示了它是怎么着成功的。

</div>  

function searchSales(){var empID = $F;var y = $F;var url = 'http://yoursever/app/get_sales';var pars = 'empID=' + empID + '&amp;year=' + y;var myAjax = new Ajax.Request(url,{method: 'get',parameters: pars,onComplete: showResponse});}function showResponse{//put returned XML in the textarea$.value = originalRequest.responseText;}Buchanan, StevenCallahan, LauraDavolio, Nancy199619971998

<div id=”myOtherDiv”>  

你注意到传播 Ajax.Request布局方法的第一个对象了吧?
参数{method: 'get', parameters: pars, onComplete: showResponse}
表示三个无名对象的真实写法。他表示你传入的那个目的有多个名字为 method
值为 'get'的属性,另三个属性名称叫 parameters
满含HTTP央求的查询字符串,和四个onComplete
属性/方法满含函数showResponse

<p>This is another paragraph</p>  

再有部分其余的性质能够在这里个指标里面定义和安装,如
asynchronous,可以为truefalse
来决定AJAX对服务器的调用是还是不是是异步的(暗中同意值是 true)。

</div>  

这么些参数定义AJAX调用的选项。在我们的例子中,在第贰个参数通过HTTP
GET命令诉求那多少个url,传入了变量 pars带有的询问字符串,
Ajax.Request目的在它达成接受响应的时候将调用showResponse 方法。

<input type=”button” value=Test1 onclick=”test1();”><br>
<input type=”button” value=Test2 onclick=”test2();”><br> 

或许你知道,
XMLHttpRequest在HTTP诉求时期将报告进度景况。这么些速度被描述为四个例外阶段:Loading,
Loaded, Interactive, 或 Complete。你能够使 Ajax.Request
对象在此外品级调用自定义方法 ,Complete
是最常用的三个。想调用自定义的点子只要求简单的在乞请的选项参数中的名称叫
onXXXXX 属性/方法中提供自定义的艺术对象。 有如大家例子中的
onComplete 。你传入的方法将会被用三个参数调用,这么些参数是
XMLHttpRequest
对象自身。你将会用那么些目的去拿到重回的数额同一时间也许检查饱含有在这次调用中的HTTP结果代码的
status 属性。

</BODY>  

还应该有其它八个有效的选项用来管理结果。咱们能够在onSuccess
选项处传入二个主意,当AJAX正确的施行完后调用,
相反的,也能够在onFailure筛选处传出二个办法,当服务器端现身谬误时调用。正如onXXXXX
选项传入的情势肖似,这四个在被调用的时候也传出一个满含AJAX央求的XMLHttpRequest对象。

</HTML>

笔者们的例证未有用任何风趣的议程处理这一个 XML响应,
大家只是把这段XML放进了叁个文本域里面。对这几个响应的三个独立的利用极大概正是找到当中的想要的消息,然后更新页面中的某个因素,
或然以至只怕做一点XSLT调换而在页面中发生一些HTML。

此外二个利润是,这么些函数能传遍用 string 表示的靶子
ID,也能够流传对象自己,这样,在营造此外能传三种等级次序的参数的函数时特别平价。

在1.4.0版本中,生龙活虎种新的风浪回传外轮理货公司被引入。假设您有黄金时代段代码总是要为三个风格迥异的平地风波施行,而任由是哪个AJAX调用引发它,那么您能够动用新的Ajax.Responders对象。

2..2使用$F()函数

要是你想要在二个AJAX调用正在运营时,展现一些提示功能,像三个持续转动的Logo之类的,你能够接受多少个全局事件Handler来做到,在那之中两个在第八个调用起先时展示Logo,另二个在最终三个调用完成时遮掩Logo。看上面包车型地铁例子。

$F(卡塔尔函数是另三个大收迎接的“快速键”,它能用于重临任何表单输入控件的值,比如text box,drop-down list。那一个法子也能用成分 id 或因素本人做为参数。

var myGlobalHandlers = {onCreate: function(){Element.show;},onComplete: function() {if(Ajax.activeRequestCount == 0){Element.hide;}}};Ajax.Responders.register;Loading...

<script> 

更完全的分解,请参见 Ajax.Request 参照他事他说加以考查 和 Ajax选项参照他事他说加以考察。

function test3(){ 

使用Ajax.Updater类

    alert($F(‘userName’));     

生机勃勃旦您的服务器的另风度翩翩端再次来到的新闻已然是HTML了,那么使用那一个顺序包中
Ajax.Updater
类将使您的生存变得越发得轻易。用它你只需提供哪三个因素要求被AJAX央求重返的HTML填充就能够了,例子比本身写表明的更驾驭。

function getHTML(){var url = 'http://yourserver/app/getSomeHTML';var pars = 'someParameter=ABC';var myAjax = new Ajax.Updater('placeholder',url,{method: 'get',parameters: pars});}

</script> 

你可以看看,这段代码比前边的事例尤其简洁,不满含 onComplete
方法,但是在结构方法中流传了多少个元素id。
咱们来稍微更改一下代码来陈说怎样在顾客端处理服务器段错误成为可能。

<inputtype=”text”id=”userName”value=”Joe Doe”><br> 

大家将参与越来越多的选项, 钦赐管理错误的一个主意。这么些是用 onFailure
选项来产生的。我们也钦命了三个 placeholder
独有在成功必要之后才会被填充。为了形成那一个指标大家修正了第二个参数从三个粗略的因素id到多个满含两本性子的指标,
successfailure 在底下的例子中并未有使用failure性格,而只是在
onFailure 处使用了 reportError 方法。

<inputtype=”button”value=Test3onclick=”test3();”><br>

假定你的服务器逻辑是及其HTML 标识再次来到JavaScript 代码,
Ajax.Updater目的足以推行这段JavaScript代码。为了使这么些目的比较响应该为JavaScript,你只需在终极参数的目的结构方法中简易参预evalScripts: true天性。不过值得说示的是,像那些选项名evalScripts暗中提示的,这么些脚本会被实践,不过它们不会被参与到Page的本子中。“有哪些差别?”,恐怕你会这么问。我们要是须求地址重临的东东像这么:

2.3 使用$A()函数

function sayHi;}

$A(卡塔尔国函数能把它接受到的单个的参数转变到二个 Array 对象。

借使您从前那样尝试过,你明白这个本子不会如你所愿意的那么行事,原因是这段脚本会被施行,但像下面那样的脚本实践并不会创建一个名字为sayHi的函数,它如何也不做。假如要创制多个函数,咱们应当把代码改成下面那一个样子:

本条方式,结合被本类库增添了的 Array
类,能方便的把别的的可枚举列表调换到或拷贝到多个 Array
对象。一个推荐的用法就是把 DOM Node Lists 转变到一个日常的 Array
对象,进而更有效能的进展遍历,请看下边包车型大巴例证。

sayHi = function;};

<script>

干什么大家在地点的代码中不利用var关键字来声称这一个变量呢,因为那样做创造出来的函数将只是这段时间脚本块的叁个有个别变量。不写var关键字,成立出来的对象的成效域正是我们所期望的window。

function showOptions(){ 

越多相关知识,请参照他事他说加以考察 Ajax.Updater reference 和options reference.

    var someNodeList=$(‘lstEmployees’).getElementsByTagName(‘option’); 

枚举… 噢!噢!

    var nodes=$A(someNodeList); 

您了然,大家都以那般来做巡回的,建二个Array,用elements组织它们,再建二个巡回构造通过index数字来寻访每贰个element,再用那么些element做一些动作。

    nodes.each(function (node){ 

当你想到那时,你会开采差不多每一回写循环代码你都会迟早用到叁个Array。那么,要是Array对象能够提供越多的效应给它们的迭代器使用不是很爽吗?确实是这样,事实上非常多的编制程序语言都在它们的Array或任何相似的结构中提供部分那样的法力。

        alert(node.nodeName+’: ‘+node.innerHTML);          

昨日好了,prototype.js了给大家叁个Enumerable对象,它实现了许多和可迭代数据开展人机联作的三昧。和原始的JS对象比较prototype.js更上大器晚成层楼,它对Array
类s扩充了具备枚举要用的函数。

    });     

循环, Ruby样式的

}

在专门的学业的javascript中,借让你想把四个array中的全体elements显示出来,你能够像上边代码那样写得很好:

</script> 

function showList(){var simpsons = ['Homer', 'Marge', 'Lisa', 'Bart', 'Meg']; for(i=0;i&lt;simpsons.length;i++){alert;}}

<selectid=”lstEmployees” size=”10″> 

应用大家新的最佳的相爱的人,prototype.js,大家能够把它生写成这么

 <optionvalue=”5″>Buchanan,Steven</option> 

 function showList(){var simpsons = ['Homer', 'Marge', 'Lisa', 'Bart', 'Meg']; simpsons.each( function{alert;}

 <optionvalue=”8″>Callahan,Laura</option> 

您只怕会想“特别奇怪的艺术…相对旧的,这种语法太古怪了”。哦,在上边的事例,确实什么也尚无,在此个轻便得要死例子中,也一向不改革太多呀,尽管如此,请继续读下去。

 <optionvalue=”1″>Davolio,Nancy</option> 

在这里起彼伏下边内容前面,你注意到那叁个被做为二个参数字传送递给each函数的函数?我们把它精晓成迭代器函数。

</select> 

Your arrays on steroids

<inputtype=”button”value=”Show the
options”onclick=”showOptions();”> 

就疑似大家地点提到的,把您的Array中的elements当成相近的品种应用相像的属性和函数是很通用的。让我们看看哪些利用大家新的马力刚劲的Arrays的迭代效率吗。

2.4 使用$H() 函数

据守标准找到一个element。

$H(State of Qatar函数把部分目的转变到一个可枚举的和协同数组相同的 Hash 对象。

function findEmployeeById{var listBox = $var options = listBox.getElementsByTagName;options = $A;var opt = options.find( &lt;STRONG&gt;function{return (employee.value == emp_id);}&lt;/STRONG&gt;);alert; //displays the employee name}Buchanan, StevenCallahan, LauraDavolio, Nancy

<script> 

前段时间我们再下意气风发城,看看哪些过滤八个Array中的成分,从各种成分中收获大家想要的成员。

function testHash() 

function showLocalLinks{paragraph = $;var links = $A(paragraph.getElementsByTagName;//find links that do not start with 'http'var localLinks = links.findAll{var start = link.href.substring;return start !='http';});//now the link textsvar texts = localLinks.pluck;//get them in a single stringvar result = texts.inspect;}This text hasa lot oflinks. Some areexternaland some are local

{   

上面包车型大巴代码仅仅是一些一点都不大的实施令人爱上这种语法。请参见
Enumerable和Array的有所函数

//let’s create the object  

prototype.js参考

    var a={ 

JavaScript类扩展

        first:10,second:20,third:30 

prototype.js 类库实现强大功效的生龙活虎种路子是扩充已有个别JavaScript 类。

    }; 

对 Object的扩展

    //now transform it into a hash  

Method

var h=$H(a);      

Kind

    alert(h.toQueryString()); 

Arguments

    //displays: first=10&second=20&third=30  

Description

     

extendstaticdestination: any object, source: any
object提供生龙活虎种通过拷贝全部源以象属性和函数到目的函数达成持续的法子inspectstatictargetObj:
any
object再次来到可读性好关于指标对象的文字描述,若是指标实例未有概念三个inspect函数,暗中同意重回toString函数的值。

对Number的扩展

</script>

Method

2.5 使用$R()函数

Kind

$R()是 new ObjectRange(lowBound,upperBound,excludeBounds)的缩写。

Arguments

跳到ObjectRange 类文书档案能够看出三个有关此类的全部描述.
当时,大家照旧先来看三个例证以体现这几个缩写能代替哪些方法吗。此外相关的局地学问可以在Enumerable 对象文书档案中找到。

Description

<script> 

toColorPart(State of Qatarinstance再次来到数字的十九进制表示格局。在把一个牧马人GB数字调换到HTML表现格局时很有用。succ重返下三个数字,这一个点子可用于迭代调用处景中。
timesinstanceiterator: a function object conforming to FunctionCalls the
iterator function repeatedly passing the current index in the index
argument. 一再调用iterator函数并传递当前index到iterator的index参数。

function demoDollar_R(){ 

上边包车型大巴事例用提示框展现0-9。

    var range=$R(10,20,false); 

function demoTimes(){var n = 10;n.times{alert;/**************************** you could have also used:* ;***************************/}

    range.each(function (value,index){ 

对 Function扩展

        alert(value);         

Method

    });     

Kind

Arguments

</script>

Description

<input type=”button” value=”Sample Count” onclick=”demoDollar_R();”
>

bindinstanceobject: the object that owns the
method再次来到function的实例,那些实例和源function的协会相像,可是它已被绑定给了参数中提供的object,就是说,function中的this指针指向参数object。bindAs伊夫ntListenerinstanceobject:
the object that owns the
method用法和地点的bind同样,分化在于用来绑定事件。

2.6 使用Try.these()函数

让大家看看怎么样行使那些扩张。

Try.these(卡塔尔方法使得实现当你想调用不一样的法子直到在那之中的贰当中标平常的这种须求变得特别轻便,
他把后生可畏多重的点子作为参数何况按梯次的生机勃勃

 Test?//declaring the classvar CheckboxWatcher = Class.create();//defining the rest of the class implementationCheckboxWatcher.prototype = {initialize: function {this.chkBox = $;this.message = message;//assigning our method to the eventthis.chkBox.onclick =this.showMessage.bindAsEventListener;},showMessage: function {alert(this.message + ' ;}};var watcher = new CheckboxWatcher;

个三个的实行这一个措施直到当中的二个成功进行,重返成功实践的不得了情势的再次来到值。

对String的扩展

在底下的例证中,
xmlNode.text在一些浏览器中好用,然则xmlNode.textContent在另朝气蓬勃部分浏览器中不奇怪办事。
使用 Try.these(卡塔尔(قطر‎

Method

艺术大家能够收获健康干活的这个形式的重返值。

Kind

<script> 

Arguments

function getXmlNodeValue(xmlNode){ 

Description

    return Try.these(function (){ 

stripTags再次来到多少个把装有的HTML或XML标志都移除的字符串。stripScripts(State of Qatarinstance再次来到叁个把全体的script都移除的字符串。escapeHTML再次回到叁个把具有的HTML标志合适的转义掉的字符串。unescapeHTMLescapeHTMLinstance重临二个带有在string中找到的持有

        return xmlNode.text; 

在prototype.js中定义新的靶子和类

         

另八个那么些程序包辅助你的地点正是提供数不清既援助面向对象设计思想又有共通功用的多多对象。

    },function (){ 

The PeriodicalExecuter object

        return xmlNode.textContent; 

本条指标提供一定间距时间上再也调用一个主意的逻辑。

        )); 

Method

         

Kind

    } 

Arguments

</script>

Description

三:Ajax对象

[ctor]constructorcallback: a parameterless function, interval: number
of seconds创设那么些指标的实例将会再次调用给定的点子。

地点提到的共通方法丰盛好,不过面临它吗,它们不是最高档的那类东西。它们是吧?你很恐怕自身编排了这么些以至在你的剧本里面有挨近成效的方法。但是那个办法只是冰山风华正茂角。

Property

自家很自然你对prototype.js感兴趣的由来很大概是出于它的AJAX技能。所以让我们解释当你须要产生AJAX逻辑的时候,那一个包怎么样让它更易于。Ajax
对象是八个预订义对象,由这么些包成立,为了封装和简化编写AJAX
效能涉及的刁钻的代码。
那么些目的包含风姿潇洒俯拾皆已的封装AJAX逻辑的类。我们来看看个中多少个类

Type

3.1 使用Ajax.Request类

Description

假定你不使用此外的帮带程序包,你很或然编写了整整大气的代码来创建XMLHttpRequest对象何况异步的追踪它的进程,
然后深入分析出响应
然后甩卖它。当你无需扶持多于黄金年代种档期的顺序的浏览器时您会以为特别的幸运。

callbackFunction(卡塔尔被调用的方式,该办法不可能传遍参数。frequencyNumber以秒为单位的间距。currentlyExecutingBoolean表示那个点子是还是不是正在试行。

为了扶持 AJAX 成效。这几个包定义了 Ajax.Request 类。

The Prototype object

借让你有一个应用程序能够经过url

响应。

Prototype 未有太重要的职能,只是注解了该程序包的版本 。

<?xml version=”1.0″ encoding=”utf-8″ ?> 

Property

<ajax-response> 

Type

  <response type=”object” id=”productDetails”> 

Description

    <monthly-sales> 

VersionString版本。emptyFunctionFunction(卡塔尔(قطر‎空函数。KFunction一个可是回传参数的函数。ScriptFragmentString识别script的正则式。

      <employee-sales> 

The Enumerable object

        <employee-id>1234</employee-id> 

Enumberable对象能够已更温婉的措施实现对列表样式的布局举办枚举。

        <year-month>1998-01</year-month> 

大多别的的目的通过增加自Enumberable对象来得到那个一蹴而就的接口。

        <sales>$8,115.36</sales> 

Method

      </employee-sales> 

Kind

      <employee-sales> 

Arguments

        <employee-id>1234</employee-id> 

Description

        <year-month>1998-02</year-month> 

eachinstanceiterator: a function object conforming to
Function把各类element做为第二个参数,element的index作为第二个参数调用iterator函数。allinstanceiterator:
a function object conforming to
Function这么些函数会用给出的iterator测量检验整个集合,假若集结中任一元素在iterator函数测量试验中回到false或null,那么那么些函数重回false,不然重临true。若无交给iterator,那么就能够测量检验全部的因素是还是不是不等于false和null。你能够简轻巧单的把它当做是“检查评定每种成分都为非空非负”。
anyinstanceiterator: a function object conforming to Function,
optional.这一个函数会用给出的iterator测量检验整个集合,若是集结中任一成分在iterator函数测量试验中回到true,那么这几个函数再次来到true,否则重回false。若无提交iterator,那么就能够测验全部的因素是不是有二个不等于false和null。你能够省略的把它作为是“检查评定成分中是还是不是有非空非负的”。
collectinstanceiterator: a function object conforming to
Function调用iterator函数依照集合中各样元素再次回到三个结实,然后根据原先集结中的顺序,重临一个Array。
detectinstanceiterator: a function object conforming to
Function集结中各类成分调用三遍Iterator,重回第一个使Iterator重回True的要素,要是最终都不曾为true的调用,那么再次来到null。
entries等于toArrayinstanceiterator: a function object conforming to
Function等于 detectinstanceiterator: a function object conforming to
Function集结中种种成分调用Iterator,再次来到二个由全体调用Iterator重回结果杰出true的成分构成的数组。和reject(卡塔尔国相反。
grepinstancepattern: a RegExp object used to match the elements,
iterator: a function object conforming to
Function用pattern参数正则表明式测量检验集结中的每一种成分,重返七个含有全数相配正则式的元素的Array,尽管给出了Iterator,这多少个各个结果还要通过一下Iterator管理。
includeinstanceobj: any object决断集合中包不带有钦赐对象。
inject(initialValue, iterator卡塔尔国instanceinitialValue: any object to be
used as the initial value, iterator: a function object conforming to
Function(accumulator, value,
index卡塔尔(قطر‎用Iterator联接全部集合中的成分。Iterator在被调用时把上二遍迭代的结果做为第八个参数字传送给accumulator。第壹次迭代时,accurmelator等于initialValue,最后回到accumulator的值。
invoke(methodName [, arg1 [, arg2 […]]]State of QatarinstancemethodName: name
of the method that will be called in each element, arg1..argN: arguments
that will be passed in the method
invocation.集结中的每一个成分调用钦赐的函数(查看源代码能够发掘钦定函数被调用时,this指针被传成当前成分),并传到给出的参数,再次来到调用结果组成的Array。
mapinstanceiterator: a function object conforming to
Function同collectinstanceiterator: a function object conforming to
Function再次来到群集兰月素的最大值,或调用Iterator后再次来到值的最大值。
memberinstanceobj: any object同 includeinstanceiterator: a function
object conforming to Function再次回到最小值,参见max(卡塔尔(قطر‎。
partitioninstanceiterator: a function object conforming to
Function重临一个富含多个Array的Array,第一个Array满含全数调用Iterator再次来到True的成分,第三个Array满含剩下的因素。假诺Iterator未有交到,那么就凭仗成分自个儿推断。
pluckinstancepropertyName name of the property that will be read from
each element. This can also contain the index of the
element再次回到各样成分的钦定属性名的性质的值组成的Array。
rejectinstanceiterator: a function object conforming to Function和
findAll. selectinstanceiterator: a function object conforming to
Function同 findAllinstanceiterator: a function object conforming to
Function依据种种成分调用Iterator重返的值进行排序重返二个Array。
toArray重返由聚积全体因素结合的叁个Array。 zip(collection1[,
collection2 [, … collectionN [,transform]]]卡塔尔国instancecollection1
.. collectionN: enumerations that will be merged, transform: a function
object conforming to
Function合併每一种给出的集结到当前集结。归拢操作再次来到一个新的array,这一个array的因素个数和原集合的要素个数同样,这一个array的各样成分又是二个子array,它合併了具有集合中风流洒脱致index的因素。尽管transform函数被钦点,那么array的每一种成分还有大概会调用transform函数先做管理。举个例子:
[1,2,3].zip.inspect()返回 “[ [1,4,7],[2,5,8],[3,6,9] ]”

        <sales>$11,147.51</sales> 

The Hash object

      </employee-sales> 

Hash对象完结生龙活虎种Hash构造,也正是一个Key:Value没有错聚众。

    </monthly-sales> 

Hash中的每一个Item是一个有三个要素的array,前一个是Key,后三个是Value,每一个Item也许有五个不需加以证实的天性,key和value。

  </response> 

Method

</ajax-response> 

Kind

用 Ajax.Request对象和服务器通讯並且得到这段
XML是超级轻易的。下边的例证演示了它是怎么办到的。

Arguments

<script> 

Description

function searchSales(){ 

keys再次回到全数Item的key的集中的三个array。
values(卡塔尔instance重返全部Item的value的集合的一个array。
mergeinstanceotherHash: Hash object归总给出的Hash,重临一个新Hash。
toQueryString以QueryString那样的体裁重临hash中具有的item,举例:
‘key1=value1&key2=value2&key3=value3’
inspect用大器晚成种适于的方式展现hash中的key:value对。

    var empID=$F(‘lstEmployees’); 

The ObjectRange class

    var y=$F(‘lstYears’); 

继承自 Enumerable

    var url=”; 

用上、上面际描述八个目的区域。

    var pars=’empID=’+empID+’&year=’+y;     

Property

     

Type

    var myAjax=new Ajax.Request(url,{ 

Kind

        method:’get’,parameters:pars,onComplete:showResponse         

Description

    });     

startinstance

range的上边界

function showResponse(originalRequest) 

endinstancerange的上方界exclusiveBooleaninstance决定边界自己是或不是range的一片段。

Method

    //put returned XML in the textarea  

Kind

    $(‘result’).value = originalRequest.responseText;  

Arguments

}  

Description

</script> 

[ctor](start, end, exclusive卡塔尔(قطر‎constructorstart: the lower bound, end:
the upper bound, exclusive: include the bounds in the
range?创立贰个range对象,从start生成到end,这里要在乎的是,start和end必段项目意气风发致,并且该品种要有succ(卡塔尔(قطر‎方法。
includeinstancesearchedValue: value that we are looking
for检查三个value是或不是在range中。

<select id=”lstEmployees” size=”10″ onchange=”searchSales()”>  

The Class object

    <option value=”5″>Buchanan, Steven</option>  

在此个顺序包中 Class 对象在宣称其余的类时候被用到
。用那么些目的注解类使得新类扶植 initialize() 方法,他起构造方法的效果与利益。

    <option value=”8″>Callahan, Laura</option>  

看上面包车型客车例子

    <option value=”1″>Davolio, Nancy</option> 

//declaring the classvar MySampleClass = Class.create();//defining the
rest of the class implmentationMySampleClass.prototype = { initialize:
function {this.message = message; }, showMessage: function { alert; }};
//now, let’s instantiate and use one objectvar myTalker = new
MySampleClass;myTalker.showMessage(); //displays alert

</select> 

Method

<select id=”lstYears” size=”3″ onchange=”searchSales()”> 

Kind

    <option selected=”selected” value=”1996″>1996</option> 

Arguments

    <option value=”1997″>1997</option> 

Description

    <option value=”1998″>1998</option> 

createinstance定义新类的构造方法。

</select> 

The Ajax object

<br> 

以此目标被作为别的提供AJAX成效的类的根对象。

<textarea id=result cols=60 rows=10 ></textarea>

Property

你注意到传播 Ajax.Request布局方法的第2个指标了呢? 参数{method: ‘get’,
parameters: pars, onComplete: showResponse}
表示三个无名对象的真实性写法。他表示你传入的这一个目的有三个名称叫 method 值为
‘get’的习性,另一个属性名叫 parameters
满含HTTP央求的查询字符串,和三个onComplete
属性/方法包涵函数showResponse。 

Type

还应该有生机勃勃对其余的属性能够在这里个目的里面定义和安装,如
asynchronous,可感觉true 或 false
来决定AJAX对服务器的调用是或不是是异步的(私下认可值是 true)。

Kind

本条参数定义AJAX调用的选项。在我们的例子中,在第叁个参数通过HTTP
GET命令央浼那几个url,传入了变量 pars包括的查询字符串, Ajax.Request
对象在它做到接收响应的时候将调用showResponse 方法。

Description

莫不你掌握,
XMLHttpRequest在HTTP央浼时期将报告进程景况。那些速度被描述为八个区别品级:Loading,
Loaded, Interactive, 或 Complete。你能够使 Ajax.Request
对象在别的品级调用自定义方法 ,Complete
是最常用的叁个。想调用自定义的法子只供给轻易的在倡议的选项参数中的名为onXXXXX 属性/方法中提供自定义的点子对象。 就疑似我们例子中的 onComplete
。你传入的法门将会被用三个参数调用,这一个参数是 XMLHttpRequest
对象自个儿。你将会用这几个指标去获取再次回到的数额同有时候只怕检查包涵有在这里次调用中的HTTP结果代码的
status 属性。

activeRequestCountNumberinstance正在管理中的Ajax央求的个数。

再有其它八个有效的选项用来管理结果。大家可以在onSuccess
选项处传入贰个方式,当AJAX精确的试行完后调用,
相反的,也能够在onFailure选项处传入叁个办法,当服务器端现身谬误时调用。正如onXXXXX
选项传入的办法相仿,那多少个在被调用的时候也不翼而飞一个富含AJAX央浼的XMLHttpRequest对象。

Method

大家的例子未有用其余有意思的方法管理那几个 XML响应,
咱们只是把这段XML放进了叁个文本域里面。对那些响应的八个超级的选拔很恐怕正是找到此中的想要的音讯,然后更新页面中的有些因素,
大概以至大概做一点XSLT调换而在页面中发出局地HTML。

Kind

 在1.4.0版本中,生机勃勃种新的风浪回传外轮理货公司被引入。若是您有风流倜傥段代码总是要为二个独辟蹊径的事件实践,而无论是哪位AJAX调用引发它,那么您能够运用新的Ajax.Responders对象。

Arguments

假若你想要在贰个 AJAX
调用正在周转时,呈现一些提醒意义,像二个相连转动的Logo之类的,你可以行使七个全局事件
Handler 来产生,此中叁个在第
二个调用早先时突显Logo,另一个在终极三个调用实现时掩盖Logo。看下边包车型客车例证。

Description

<script> 

getTransport(卡塔尔instance重回新的XMLHttpRequest 对象。

var myGlobalHandlers = { 

The Ajax.Responders object

onCreate: function(){ 

继承自 Enumerable

Element.show(‘systemWorking’); 

本条指标保险贰个在Ajax相关事件发生时将被调用的指标的列表。举例,你要设置三个大局钩子来拍卖Ajax操作极其,那么你就足以接受那些指标。

}, 

Property

onComplete: function() { 

Type

if(Ajax.activeRequestCount == 0){ 

Kind

Element.hide(‘systemWorking’); 

Description

respondersArrayinstance被登记到Ajax事件通报的靶子列表。

Method

}; 

Kind

Ajax.Responders.register(myGlobalHandlers); 

Arguments

</script> 

Description

<div id=’systemWorking’><img
src=’spinner.gif’>Loading…</div> 

registerinstanceresponderToAdd: object with methods that will be
called.被传播参数的目的应包涵名如Ajax事件的多级措施(如onCreate,onComplete,onException)。通讯事件引发全体被登记的指标的适龄名称的函数被调用。
unregisterinstanceresponderToRemove: object to be removed from the
list.从列表中移除。 dispatch(callback, request, transport,
json卡塔尔instancecallback: name of the AJAX event being reported, request:
the Ajax.Request object responsible for the event, transport: the
XMLHttpRequest object that carried the AJAX call, json: the X-JSON
header of the response
遍历被登记的靶子列表,寻觅有由callback参数决定的万分函数的目的。然后向那么些函数字传送递此外的多少个参数,假设Ajax响应中蕴藏二个带有JSON内容的X-JSON
HTTP头,那么它会被热行并传到json参数。假如事件是onException,那么transport参数会被那多少个替代,json不会传送。

更完全的表达,请参见 Ajax.Request 参谋 和 Ajax选项参谋。

The Ajax.Base class

3.2 使用Ajax.Updater类

其生龙活虎类是任何在Ajax对象中定义的类的基类。

风流浪漫旦您的服务器的另风度翩翩端再次来到的新闻已是HTML了,那么使用这几个程序包中
Ajax.Updater
类将使您的生存变得尤为得容易。用它你只需提供哪三个因素要求被AJAX央浼再次回到的HTML填充就足以了,例子比本人写表明的更明白。 

Method

<script> 

Kind

function getHTML() 

Arguments

Description

var url = ”; 

setOptionsinstanceoptions: AJAX
options设定AJAX操作想要的选项。responseIsSuccess重临 true
假若AJAX操作成功,不然为 false 。responseIsFailure与
responseIsSuccess() 相反。

var pars = ‘someParameter=ABC’; 

The Ajax.Request class

 

继承自 Ajax.Base

var myAjax = new Ajax.Updater( 

封装 AJAX 操作

‘placeholder’, 

Property

url, 

Type

Kind

method: ‘get’, 

Description

parameters: pars 

EventsArraystatic在AJAX操作中有着只怕报告的事件/状态的列表。这些列表包蕴:
'Uninitialized', 'Loading', 'Loaded', 'Interactive',
'Complete'。transportXMLHttpRequestinstance承载AJAX操作的
XMLHttpRequest 对象。urlstringinstance请求的URL。

}); 

Method

 

Kind

Arguments

</script> 

Description

<input type=button value=GetHtml onclick=”getHTML()”> 

[ctor]constructorurl: the url to be fetched, options: AJAX
options创制那几个目的的二个实例,它将要加以的选项下须求url。onCreate事件在调用constructor事被勉力。
重要: 即便采用的url受到浏览器的石嘴山设置,他会或多或少功用也不起。
非常多情景下,浏览器不会呈请与日前页面分化主机的url。
你最佳只利用本地url来制止约束顾客配置他们的浏览器instance那些主意确定不会被表面调用。它在Ajax响应中隐含X-JSONHTTP头时用来内部调用试行那些内容。evalReponse那也方法分明不会被外表调用,若是Ajax响应含有叁个值为text/javascript的Cotent-Type头,那么这些法子就用被调用推行响应体。headerinstancename:
HTTP header
name引用Ajax响应的头的从头到尾的经过,在Ajax访谈截止后再调用那个点子。onStateChange这几个点子日常不会被表面调用。
当AJAX恳求状态更换的时候被这一个目的自己调用。requestinstanceurl: url for
the AJAX
call这些艺术通常不会被表面调用。已经在布局方法中调用了。respondToReadyStateinstancereadyState:
state number 那个方式常常不会被表面调用。
当AJAX供给状态更改的时候被这一个指标本身调用。setRequestHeaders这几个法子平日不会被表面调用。
被那几个指标自身调用来布置在HTTP央浼要发送的HTTP报头。

<div id=”placeholder”></div> 

The options argument object

你能够看看,这段代码比前边的事例尤其简洁,不包涵 onComplete
方法,可是在布局方法中传出了七个元素id。
我们来稍微修正一下代码来汇报怎么着在客商端管理服务器段错误成为恐怕。

An important part of the AJAX operations is the options argument.
There’s no options class per se. Any object can be passed, as long as it
has the expected properties. It is common to create anonymous objects
just for the AJAX calls.

咱们将加盟越来越多的选项, 钦赐管理错误的三个办法。这些是用 onFailure
选项来形成的。我们也钦赐了二个 placeholder
唯有在成功须要之后才会被填充。为了实现那一个目标大家修正了第三个参数从二个轻易易行的成分id到一个包罗多少个本性的对象,
success (一切OK的时候被用到卡塔尔 和 failure (有地点出标题标时候被用到卡塔尔国在下边包车型地铁例证中绝非用到failure属性,而大器晚成味在 onFailure 处使用了
reportError 方法。

Property

<script> 

Type

function getHTML() 

Default

Description

var url = ”; 

methodString’post’HTTP
必要方式。parametersString”在HTTP央浼中传播的url格式的值列表。asynchronousBooleantrue钦定是或不是做异步
AJAX 央浼。postBodyStringundefined在HTTP
POST的场合下,传入央求体中的内容。requestHeadersArrayundefined和伏乞一同被传播的HTTP头部列表,
那么些列表必需带有偶数个品类, 任何奇数项目是自定义的尾部的名称,
接下来的偶数项目使这些底部项指标字符串值。
例子:['my-header1', 'this is the value', 'my-other-header', 'another value']
onXXXXXXXXFunction(XMLHttpRequest,
Object卡塔尔undefined在AJAX诉求中,当相应的轩然大波/状态变成的时候调用的自定义方法。
举例
var myOpts = {onComplete: showResponse, onLoaded: registerLoaded};.
那个方法将被流传二个参数, 这几个参数是承载AJAX操作的 XMLHttpRequest
对象,另二个是含有被实行X-JSON响应HTTP头。onSuccessFunction(XMLHttpRequest,
Object卡塔尔undefined当AJAX央求成功做到的时候调用的自定义方法。
这几个方法将被盛传一个参数, 那几个参数是承载AJAX操作的 XMLHttpRequest
对象,另二个是含有被实施X-JSON响应HTTP头。onFailureFunction(XMLHttpRequest,
Object卡塔尔(قطر‎undefined当AJAX恳求完毕但现身错误的时候调用的自定义方法。那个法子将被传出三个参数,
这么些参数是承载AJAX操作的 XMLHttpRequest
对象,另三个是含有被实行X-JSON响应HTTP头。onExceptionFunction(Ajax.Request,
exception卡塔尔undefined当贰个在客商端推行的Ajax发生像空头响应或无效参数那样的至极景况时被调用的自定义函数。它选取多个参数,包括至极Ajax操作的Ajax.Request对象和极其对象。insertionan
Insertion classundefined多个能说了算哪些插入新剧情的类,能
Insertion.Before, Insertion.Top, Insertion.Bottom,或 Insertion.After.
只好接纳于Ajax.Updater 对象. evalScriptsBooleanundefined,
false决定当响应到达的时候是不是执行在那之中的脚本块,只在 Ajax.Updater
对象中选用。decayNumberundefined,
1决定当最后二次响应和前二遍响应相近不经常间在 Ajax.PeriodicalUpdater
对象中的减漫访问的次数, 比如,要是设为2,后来的根基代谢和事情发生前的结果意气风发律,
这些目的将等待2个设定的小时间隔实行下贰遍刷新, 如若又一遍相似,
那么将等待4次,等等。
不设定那个只,或然安装为1,将防止访谈频率变慢。frequencyNumberundefined,
2用秒表示的底工代谢间的间距,只可以选拔于 Ajax.PeriodicalUpdater 对象。

var pars = ‘someParameter=ABC’; 

The Ajax.Updater class

 

继承自 Ajax.Request

 

当号令的url再次来到生龙活虎段HTML而你想把它一向放置到页面中三个一定的要素的时候被用到。
即使url的回到“

 

的块并且想在收受届时就实践它的时候也得以选择该指标。含有脚本的时候使用
evalScripts 选项。

var myAjax = new Ajax.Updater( 

Property

{success: ‘placeholder’}, 

Type

url, 

Kind

Description

method: ‘get’, 

containersObjectinstance这么些指标包含多个属性:AJAX诉求成功实行的时候用到
containers.success , 不然的话用到 containers.failure

parameters: pars, 

Method

onFailure: reportError 

Kind

}); 

Arguments

 

Description

[ctor](container, url, options)constructorcontainer:this can be the id
of an element, the element object itself, or an object with two
properties – object.success element that will be used when the AJAX
call succeeds, and object.failure element that will be used
otherwise. url: the url to be fetched, options: AJAX
options成立一个用给定的精选诉求给定的url的二个实例。updateContent(卡塔尔(قطر‎instance这些方法平时不会被外表调用。
当响应达到的时候,被那些目的本人调用。
它会用HTML更新适当的成分大概调用在 insertion
选项中传唱的点子-那些方法将被传到五个参数, 被更新的成分和响应文件。

function reportError(request) 

The Ajax.PeriodicalUpdater class

继承自Ajax.Base

alert(‘Sorry. There was an error.’); 

本条类重复生成并运用 Ajax.Updater指标来刷新页面中的叁个成分。或然实践Ajax.Updater 能够举办的别的职务。越来越多音讯参考 Ajax.Updater 参谋 。

Property

</script> 

Type

<input type=button value=GetHtml onclick=”getHTML()”> 

Kind

<div id=”placeholder”></div> 

Description

设若您的服务器逻辑是及其HTML 标志再次回到JavaScript 代码,
Ajax.Updater对象足以实施这段JavaScript代码。为了使那一个指标相比较响应该为JavaScript,你只需在终极参数的靶子结构方法中归纳加入evalScripts:
true属性。但是值得一说醒的是,像那几个选项名evalScripts暗指的,这一个脚本会被施行,可是它们不会被参加到Page的脚本中。“有怎么着差距?”,或者您会那样问。大家即使诉求地址再次来到的东东像那样:

containerObjectinstance那么些值将平昔传入Ajax.Updater的构造方法。urlStringinstance这几个值将向来传入Ajax.Updater的布局方法。frequencyNumberinstance若干遍刷新之间的间距,以秒为单位。 暗中认可2秒。 This 当调用 Ajax.Updater
对象的时候,那一个数将和眼下的 decay 相乘。
decayNumberinstance重负推行职责的时候保持的收缩水平。updaterAjax.Updaterinstance最终二遍接受的
Ajax.Updater对象timerObjectinstance布告对象该下三回创新时用到的JavaScript
沙漏。

<script language=”javascript” type=”text/javascript”> 

Method

function sayHi(){ 

Kind

alert(‘Hi’); 

Arguments

Description

</script> 

[ctor](container, url, options卡塔尔国constructorcontainer:this can be the id
of an element, the element object itself, or an object with two
properties – object.success element that will be used when the AJAX call
succeeds, and object.failure element that will be used otherwise. url:
the url to be fetched, options: AJAX
options创制叁个用给定的选拔央求给定的url的三个实例。start(卡塔尔国instance这么些法子日常不会被外表调用。
对象为了伊始周期性施行职务的时候调用的措施。
stop使对象停止施行周期职责。结束后,假若有onComplete选项,那么吸引callback。
updateComplete这些措施常常不会被外表调用。 被日前的
Ajax.Updater运用,当叁次倡议甘休的时候,它被看做布署下二遍呼吁。
onTimerEvent这几个措施平日不会被表面调用。当到下三遍立异时被中间调用。

<input type=button value=”Click Me” onclick=”sayHi()”> 

The Element object

大器晚成旦您以前那样尝试过,你领会这个本子不会如你所期望的那样行事,原因是这段脚本会被推行,但像下面那样的剧本实行并不会创制一个叫作sayHi的函数,它什么也不做。倘诺要创设叁个函数,大家应该把代码改成上边那个样子:

本条目款项标提供在操作DOM桐月素时使用的功效性方法。

<script language=”javascript” type=”text/javascript”> 

Method

sayHi = function(){ 

Kind

alert(‘Hi’); 

Arguments

}; 

Description

</script> 

addClassNameinstanceelement: element object or id, className: name of a
CSS
class将付诸的className增多到对象的className属性中。classNamesinstanceelement:
element object or id重临一个Element.ClassName的对象表示CSS
给出对象有的class names。cleanWhitespaceinstanceelement: element object
or id撤除对象子元素中具备空白的text node。emptyinstanceelement: element
object or
id重返二个布尔值提醒对象为空或唯有空白字符。getDimensionsinstanceelement:
element object or id重临对象的尺码,重返值有七个属性,height和width。
getHeightinstanceelement: element object or id再次回到成分的 offsetHeight
。getStyleinstanceelement: element object or id, cssProperty name of a
CSS property (either format ‘prop-name’ or ‘propName’
works卡塔尔国.重临给定对象的CSS属性值或未有一点点名cssProperty时重回null。hasClassNameinstanceelement:
element object or id, className: name of a CSS class再次来到 true
假诺成分的类名中包罗给定的类名hide(elem1 [, elem2 [, elem3
[…]]]卡塔尔instanceelemN: element object or id通过设定style.display
'none'来掩藏每一个传入的要素。 makeClippinginstanceelement: element
object or
id能过设定overflow的值设定内容溢出剪辑。makePositionedinstanceelement:
element object or
id改良对象的style.position为’relative’。removeinstanceelement: element
object or
id从document对象中剔除钦点的要素。removeClassNameinstanceelement:
element object or id, className: name of a CSS
class从要素的类名中去除给定的类名。scrollToinstanceelement: element
object or id滚动window到目的的地点。setStyle(element,
cssPropertyHash卡塔尔国instanceelement: element object or id, cssPropertyHash
Hash object with the styles to be
applied.依据cssPropertyHash参数给目的设置CSS属性值。show(elem1 [, elem2
[, elem3 […]]]卡塔尔(قطر‎instanceelemN: element object or id用设定它的
style.display''来彰显每一种传入的因素。 toggle(elem1 [, elem2 [,
elem3 […]]]State of QatarinstanceelemN: element object or
id切换每一个传来成分的可视性。undoClippinginstanceelement: element
object or
idstyle.overflow的值重回上叁个设定值。undoPositionedinstanceelement:
element object or id清除对象的 style.position 为
”updateinstanceelement: element object or id, html: html
content用给出的HTML参数替换对象的innerHTML,即便HTML参数中包罗

<input type=button value=”Click Me” onclick=”sayHi()”>

将把 HTML 变为
Hello, Chief Wiggum. How's it going?

为啥大家在地点的代码中不选拔var关键字来声称那么些变量呢(指sayHi
),因为那样做创造出来的函数将只是近来脚本块的一个片段变量(最少在IE中是那样)。不写var关键字,创设出来的目的的功效域就是大家所期待的window。

The Insertion.Top class

愈来愈多相关文化,请参见  Ajax.Updater reference 和options reference. 

继承自 Abstract.Insertion

四:枚举

在给定成分第一体态节点地点插入 HTML。内容将放在成分的最早标识的紧后边。

您了然,大家都是那般来做巡回的,建二个Array,用elements组织它们,再建二个周而复始结构(比方for,foreach,while卡塔尔通过index数字来寻访每三个element,再用那些element做一些动作。 

Method

当您想到这儿,你会开掘大概每回写循环代码你都会迟早用到一个Array。那么,假如Array对象能够提供更加多的职能给它们的迭代器使用不是很爽吗?确实是这么,事实上相当多的编制程序语言都在它们的Array或别的近似的协会中(如Collections,Lists)提供一些这么的功力。 

Kind

今后好了,prototype.js了给大家多少个Enumerable对象,它完毕了过多和可迭代数据举行相互作用的要诀。和原始的JS对象比较prototype.js更上风流浪漫层楼,它对Array
类s扩大了富有枚举要用的函数。 

Arguments

4.1循环, Ruby样式的

Description

在标准的javascript中,即便你想把三个array中的全部elements彰显出来,你能够像上面代码那样写得很好:

[ctor]constructorelement: element object or id, content: HTML to be
inserted世襲自Abstract.Insertion. 创立一个足以扶植插入动态内容的对象。

<script> 

下面的代码
Hello, Wiggum. How's it going? new Insertion.Top; 

将把 HTML 变为
Hello, Mr. Wiggum. How's it going?

function showList(){ 

The Insertion.Bottom class

var simpsons = [‘Homer’, ‘Marge’, ‘Lisa’, ‘Bart’, ‘Meg’]; 

Inherits from Abstract.Insertion

            for(i=0;i<simpsons.length;i++){ 

在给定成分最后一个子节点地方插入
HTML。内容将放在成分的扫尾标志的紧前面。

alert(simpsons[i]); 

Method

Kind

Arguments

</script> 

Description

<input type=”button” value=”Show List” onclick=”showList();” > 

[ctor]constructorelement: element object or id, content: HTML to be
insertedInherited from Abstract.Insertion. Creates an object that will
help with dynamic content insertion.

利用大家新的最佳的爱侣,prototype.js,大家得以把它生写成那样

The following code

function showList(){ 

Hello, Wiggum. How's it going? new Insertion.Bottom('person', " What's up?"); 

var simpsons = [‘Homer’, ‘Marge’, ‘Lisa’, ‘Bart’, ‘Meg’]; 

Will change the HTML to

            simpsons.each( function(familyMember){ 

Hello, Wiggum. How's it going? What's up?

alert(familyMember); 

The Insertion.After class

}); 

Inherits from Abstract.Insertion

在给定成分甘休标识的背后插入HTML。

你大概会想“极其古怪的点子…相对旧的,这种语法太奇怪了”。哦,在地点的例证,确实什么也不曾,在这里个大约得要死例子中,也从不退换太多呀,即便如此,请继续读下来。 

Method

在持续上面内容前边,你注意到不行被做为三个参数字传送递给each函数的函数?我们把它驾驭成迭代器函数。 

Kind

4.2 Your arrays on steroids

Arguments

就像我辈地点提到的,把您的Array中的elements当成相近的类型应用相符的性质和函数是很通用(Common,不知该翻译成通用还是庸俗State of Qatar的。让大家看看怎么着利用大家新的力气苍劲的Arrays的迭代作用吗。
依照标准找到三个element。 

Description

<script> 

[ctor]constructorelement: element object or id, content: HTML to be
insertedInherited from Abstract.Insertion. Creates an object that will
help with dynamic content insertion.

function findEmployeeById(emp_id){ 

The following code

var listBox = $(‘lstEmployees’) 

Hello, Wiggum. How's it going? new Insertion.After('person', ' Are you there?'); 

var options = listBox.getElementsByTagName(‘option’); 

Will change the HTML to

options = $A(options); 

Hello, Wiggum. How's it going? Are you there?

var opt = options.find( function(employee){ 

The Field object

return (employee.value == emp_id); 

那一个目的提供操作表单中的输入项目标功效性方法。

}); 

Method

alert(opt.innerHTML); //displays the employee name 

Kind

Arguments

</script> 

Description

<select id=”lstEmployees” size=”10″ > 

clear(field1 [, field2 [, field3 […]]]卡塔尔(قطر‎instance田野同志N: 田野同志element object or id 扑灭传入表单中项目成分的值。present(田野1 [,
field2 [, field3 […]]]卡塔尔国instance田野先生N: 田野先生 element object or id
只有在具备的表单项目都不为空时重返 true 。focusinstance田野(field卡塔尔(قطر‎: 田野同志element object or id移动主旨到给定的表单项目。selectinstance田野同志: 田野element object or
id选用扶持项目值选取的表单项目标值。activateinstance田野: 田野(field卡塔尔 element
object or id移动宗旨並且选拔匡助项目值采取的表单项目标值。

<option value=”5″>Buchanan, Steven</option> 

The Form object

<option value=”8″>Callahan, Laura</option> 

以此目的提供操作表单和他们的输入成分的成效性方法。

<option value=”1″>Davolio, Nancy</option> 

Method

</select> 

Kind

<input type=”button” value=”Find Laura”
onclick=”findEmployeeById(8);” > 

Arguments

前不久我们再下风度翩翩城,看看哪些过滤贰个Array中的成分,从各个成分中获取我们想要的积极分子。 

Description

<script> 

serializeinstanceform: form element object or
id再次回到url参数格式的类型名和值的列表,
'field1=value1&field2=value2&field3=value3'。findFirstElementinstanceform:
form element object or
id重返Form中率先个Enable的指标。getElementsinstanceform: form element
object or id再次来到富含全部在表单中输入项指标 Array 对象。getInputs(form
[, typeName [, name]]卡塔尔国instanceform: form element object or id,
typeName: the type of the input element, name: the name of the input
element.重回叁个 Array 蕴涵全部在表单中的 元素。 此外,
那些列表可以对元素的类别或名字属性进行过滤。disableinstanceform: form
element object or id使表单中的全体输入项目无效。enableinstanceform: form
element object or
id使表单中的全数输入项目有效。focusFirstElementinstanceform: form
element object or
id激活第二个表单中可视的,有效的输入项目。resetinstanceform: form
element object or id重新初始化表单。和调用表单对象的 reset() 方法同样。

function showLocalLinks(paragraph){ 

The Form.Element object

paragraph = $(paragraph); 

以此指标提供表单对象中的可视和非可视成分的功效性方法。

var links = $A(paragraph.getElementsByTagName(‘a’)); 

Method

//find links that do not start with ‘http’ 

Kind

var localLinks = links.findAll( function(link){ 

Arguments

var start = link.href.substring(0,4); 

Description

return start !=’http’; 

serializeinstanceelement: element object or id重返成分的 名称=值 对, 如
'elementName=elementValue'。getValueinstanceelement: element object or
id重回成分的值。

}); 

The Form.Element.Serializers object

//now the link texts 

本条目款项的提供了此中使用的用来扶助剖判出表单成分的眼下值的意气风发部分有效的秘技。

var texts = localLinks.pluck(‘innerHTML’); 

Method

//get them in a single string 

Kind

var result = texts.inspect(); 

Arguments

alert(result); 

Description

inputSelectorinstanceelement: object or id of a form element that has
the checked property, like a radio button or
checkbox.再次回到带有成分名称和值的 Array , 如
['elementName', 'elementValue']textareainstanceelement: object or id
of a form element that has the value property, like a textbox, button
or password 田野(field卡塔尔.再次回到带有成分名称和值的 Array , 如
['elementName', 'elementValue']selectinstanceelement: object of a
element再次回到带有成分名称和富有被增选的挑肥拣瘦的值或文本的 Array , 如
['elementName', 'selOpt1 selOpt4 selOpt9']

</script> 

The Abstract.TimedObserver class

<p id=”someText”> 

本条类是用于别的监听三个要素的值变化的类的基类,那个类像叁个抽象类相近被选用。

This <a href=”; has 

子类能够被成立来监听如输入项目值,或style属性,或表格的行数,或许别的任何对追踪变化有关的东西。

a <a href=”#localAnchor”>lot</a> of 

子类必得落实这几个艺术来支配哪些才是被监听的因素的脚下值。

<a href=”#otherAnchor”>links</a>. Some are 

Method

<a href=”; 

Kind

and some are <a href=”#someAnchor”>local</a> 

Arguments

</p> 

Description

<input type=button value=”Find Local Links”
onclick=”showLocalLinks(‘someText’)”> 

[ctor](element, frequency, callback卡塔尔(قطر‎constructorelement: element object
or id, frequency: interval in seconds, callback: function to be called
when the element changes创造一个监听成分的靶子。getValue(卡塔尔国instance,
abstract子类必得完结这么些方法以瘊定什么那个成分被监视的眼下值。registerCallback(卡塔尔instance那些办法平日不会被表面调用。
被那一个目的自个儿调用来开端监听那多少个成分。
onTimerEvent这几个主意经常不会被外表调用。
被那些指标本人调用来周期性的反省这个成分。

地方的代码仅仅是少数小小的实行令人爱上这种语法。请参照他事他说加以侦察Enumerable和Array的保有函数

Property

五:prototype.js参考

Type

5.1 JavaScript类扩展

Description

prototype.js 类库完毕强大成效的意气风发种门路是增添已部分JavaScript 类。 

elementObject被监听的要素对象。frequencyNumber每一次检查中的以秒为单位的年月间距。callbackFunction只要成分改动这么些方法就能够被调用。
会选取到成分对象和新值作为参数。lastValueString成分被核查的结尾叁个值。

5.1.1 对 Object的扩展

The Form.Element.Observer class

Method

继承自 Abstract.TimedObserver

Kind

Abstract.TimedObserver
的叁个贯彻类用来监听表单输入项指标值的变动。当你想监听一个向来不带报告值变化事件的因素的时候利用那么些类。不然的话使用
Form.Element.EventObserver 类代替。

Arguments

Method

Description

Kind

extend(destination, source)

Arguments

static

Description

destination: any object, source: any object

[ctor](element, frequency, callback)constructorelement: element object
or id, frequency: interval in seconds, callback: function to be called
when the element changes继承自 Abstract.TimedObserver.
创建三个监听成分值属性的指标。getValue(卡塔尔国instance重回成分的值。

提供生龙活虎种通过拷贝全部源以象属性和函数到目标函数达成三番两次的秘诀

The Form.Observer class

inspect(targetObj)

继承自 Abstract.TimedObserver

static

Abstract.TimedObserver
的贰个落到实处类用来监听表单中别的数据项的值的浮动。当您想监听贰个还未带报告值变化事件的因素的时候使用这些类。
不然的话使用类Form.EventObserver 代替。

targetObj: any object

Method

回到可读性好关于指标对象的文字描述,借使目的实例未有定义多少个inspect函数,暗中认可重临toString函数的值。

Kind

5.1.2 对Number的扩展

Arguments

Method

Description

Kind

[ctor](form, frequency, callback)constructorform: form object or id,
frequency: interval in seconds, callback function to be called when any
data entry element in the form changes继承自 Abstract.TimedObserver.
创制叁个监听表单变化的指标。getValue(卡塔尔国instance重回全部表单数据的后生可畏类别值。

Arguments

The Abstract.EventObserver class

Description

以此类被视作其余一些类的基类,那么些类具有在二个要素的值修改事件发生的时候奉行一个回调方法这么的效果。

toColorPart()


Abstract.EventObserver 的多个对象可以绑定到一个元素上,不是一个帮其他的擦出了,而是按照他们付给元素的顺序执行这些回调方法。

instance

单选按键和复选框的触发事件是 onclick
,而文本框和下拉列表框/下拉列表框的是 onchange

(none)

Method

归来数字的十九进制表示格局。在把一个EvoqueGB数字调换来HTML表现情势时很有用。

Kind

succ()

Arguments

instance

Description

(none)

[ctor]constructorelement: element object or id, callback: function to
be called when the event
happens创制监听成分的指标。getValue(卡塔尔国instance,abstract子类必得得以达成那么些点子以瘊定什么那几个因素被监视的近日值。registerCallback这一个措施平时不会被外表调用。
被对象调用来把温馨绑定到成分的事件上。
registerFormCallbacks那些方式平日不会被外表调用。
被对象调用来把自身绑定到表单中的每二个数据项成分的轩然大波上。
onElement伊夫nt这几个办法平日不会被表面调用。 将被绑定到成分的风云上。

 重返下三个数字,这几个法子可用来迭代调用项景中。 

Property

times(iterator)

Type

instance

Description

iterator: a function object conforming to Function(index)

elementObject被监听的成分对象。callbackFunction只要元素改动就调用的方式。会收下到成分对象和新值作为参数。lastValueString元素被查验的末段三个值。

Calls the iterator function repeatedly passing the current index in the
index argument.
屡次调用iterator函数并传递当前index到iterator的index参数。 

The Form.Element.EventObserver class

上面包车型客车例证用提示框显示0-9。 

继承自 Abstract.EventObserver

<script> 

Abstract.EventObserver
的三个得以达成类,它在监测到表单中多少项元素的值改换的打点事件时候奉行一个回调方法。
假使成分未有任何报告生成的事件,那么你能够动用 Form.Element.Observer
类代替。

function demoTimes(){ 

Method

var n = 10; 

Kind

n.times(function(index){ 

Arguments

alert(index); 

Description

}); 

[ctor]constructorelement: element object or id, callback: function to
be called when the event happens继承自 Abstract.EventObserver
创设一个监听成分值属性的靶子。getValue(卡塔尔(قطر‎instance再次来到成分的值。

/*************************** 

The Form.EventObserver class

* you could have also used: 

继承自 Abstract.EventObserver

*           (10).times( …. ); 

Abstract.EventObserver
的贰个落实类,监听表单对象中包括的别的对象的其余变动,用成分的平地风波检验值的变迁。假设成分未有其余报告生成的事件,
那么你可以利用Form.Observer 类代替。

***************************/ 

Method

Kind

</script> 

Arguments

<input type=button value=”Test Number.times()”
onclick=”demoTimes()”> 

Description

5.1.3 对 Function扩展

[ctor]constructorform: form object or id, callback: function to be
called when any data entry element in the form changes继承自
Abstract.EventObserver
创制叁个监听成分值属性的靶子。getValue(卡塔尔instance重临全数表单数据的黄金年代连串值。

Method

Position 对象

Kind

其一目的提供多数和因素地点相关的办法。

Arguments

Method

Description

Kind

bind(object)

Arguments

instance

Description

object: the object that owns the method

prepare()instance调整 deltaXdeltaY
属性来和谐在滚动地点中的变化。
记得在页面滚动之后的任何调用的withinIncludingScrolloffset
早前调用那个办法。realOffsetinstanceelement:
object重临那么些因素的不利滚动偏差的 Array 对象,
满含富有影响因素的轮转偏差。结果数组相同
[total_scroll_left, total_scroll_top]cumulativeOffsetinstanceelement:
object回这几个因素的不利滚动偏差的 Array 对象,
满含别的被放置的父成分强加偏差。结果数组相似
[total_offset_left, total_offset_top]withininstanceelement: object, x
and y: coordinates of a
point测量试验给定的点的坐标是不是在加以的成分的外界矩形范围以内。withinIncludingScrolloffsetsinstanceelement:
object, x and y: coordinates of a
point测量试验给定的点的坐标是还是不是在加以的要素的外表矩形范围以内。overlapinstancemode:
‘vertical’ or ‘horizontal’, element:
object在调用那么些方式在此以前须求调用within()
。那些措施重返0.0到1.0里面包车型大巴数字,来表示坐标在要素重叠的分数。
举个例证,要是成分是二个边长是100px的圆柱形的DIV,而且位居, 然后
within;``overlap('vertical', divSquare);会重返0.10,意思是十分点放在DIV最上端边框以下 10% 的岗位上。
cloneinstancesource: element object or id, target: element object or
id改换目的成分的大大小小尺寸和任务与源成分的同样。

再次来到function的实例,那么些实例和源function的结构相近,可是它已被绑定给了参数中提供的object,正是说,function中的this指针指向参数object。

bindAsEventListener(object)

instance

object: the object that owns the method

用法和上面的bind一样,区别在于用来绑定事件。

让大家看看哪些选用这个扩大。 

<input type=checkbox id=myChk value=1> Test? 

<script> 

//declaring the class 

var CheckboxWatcher = Class.create(); 

//defining the rest of the class implementation 

CheckboxWatcher.prototype = { 

initialize: function(chkBox, message) { 

this.chkBox = $(chkBox); 

this.message = message; 

//assigning our method to the event 

 

this.chkBox.onclick = 

this.showMessage.bindAsEventListener(this); 

 

}, 

showMessage: function(evt) { 

alert(this.message + ‘ (‘ + evt.type + ‘)’); 

}; 

var watcher = new CheckboxWatcher(‘myChk’, ‘Changed’); 

</script> 

5.1.4 对String的扩展

Method

Kind

Arguments

Description

stripTags()

instance

(none)

回来三个把具备的HTML或XML标志都移除的字符串。

stripScripts()

instance

(none)

重返三个把富有的script都移除的字符串。

escapeHTML()

instance

(none)

回去贰个把装有的HTML标志合适的转义掉的字符串。

unescapeHTML()

instance

(none)

escapeHTML()的反转。

extractScripts()

instance

(none)

归来一个分包在string中找到的具有<script>的数组。

evalScripts()

instance

(none)

实施在string中找到的有着<script>。

toQueryParams()

instance

(none)

把querystring分割才二个用parameter
name做index的一块儿Array,更像一个hash。

parseQuery()

instance

(none)

和toQueryParams()一样.

toArray()

instance

(none)

把字符串转变来字符数组.

camelize()

instance

(none)

调换三个以连字符连接的字符串成叁个骆驼法样式的字符串。比如,这一个函数在写代码时,把它做为二个体制工具使用是很有用的。

5.1.5 对  Array的扩展

因为array扩充于enumerable,所以全体enumberable对象的函数,array都是能够动用的,除却,上面包车型客车那个也是早已贯彻了的。 

Method

Kind

Arguments

Description

clear()

instance

(none)

清空。

compact()

instance

(none)

归来贰个不包含源array中null或undefined元素的array,此情势不修正源array。

first()

instance

(none)

回到array的率先个对象。

flatten()

instance

(none)

通过递归组合array每种成分的子成分(若是该因素也是array卡塔尔来回到叁个“扁平的”生机勃勃维的array。

indexOf(value)

instance

value: what you are looking for.

回来给出数字地点(从0算起)的因素,假诺在该职分并未有找到对象,重返-1。 

inspect()

instance

(none)

重载inspect(卡塔尔,再次来到越来越好格式的反映Array各样成分的字符描述。

last()

instance

(none)

重回最终二个要素。

reverse([applyToSelf])

instance

applyToSelf: indicates if the array itself should also be reversed.

 反转Array相月素的依次,若无交给参数,或参数为true,则源Array桐月素的顺序也反转,不然源Array保持不改变。 

shift()

instance

(none)

回去Array的首先个要素并从Array中移除它,Array的Length-1。

without(value1 [, value2 [, .. valueN]])

instance

value1 … valueN: values to be excluded if present in the array.

 重临二个把参数列表中带有的成分从源Array中革除的Array。 

5.2 document DOM扩展

Method

Kind

Arguments

Description

getElementsByClassName(className [, parentElement])

instance

className: name of a CSS class associated with the elements,
parentElement: object or id of the element that contains the elements
being retrieved.

归来全数CSS
className属性等于className参数的因素,若无给出parentElement,那么将追寻document
body。(此处使用document.body作者以为不比使用document,因为有的时候候有的页面未有body卡塔尔 

5.3 Event扩展

Property

Type

Description

KEY_BACKSPACE

NumberNumber

8: Constant. Code for the Backspace key.

KEY_TAB

Number

9: Constant. Code for the Tab key.

KEY_RETURN

Number

13: Constant. Code for the Return key.

KEY_ESC

Number

27: Constant. Code for the Esc key.

KEY_LEFT

Number

37: Constant. Code for the Left arrow key.

KEY_UP

Number

38: Constant. Code for the Up arrow key.

KEY_RIGHT

Number

39: Constant. Code for the Right arrow key.

KEY_DOWN

Number

40: Constant. Code for the Down arrow key.

KEY_DELETE

Number

46: Constant. Code for the Delete key.

observers:

Array

List of cached observers. Part of the internal implementation details of
the object.

Method

Kind

Arguments

Description

element(event)

static

event: an Event object

回来事件源对象。

isLeftClick(event)

static

event: an Event object

意气风发经点击了鼠标左键,再次回到true.

pointerX(event)

static

event: an Event object

回来鼠标的X座标。 

pointerY(event)

static

event: an Event object

回到鼠标的Y座标。

stop(event)

static

event: an Event object

运用此函数来制动踏板事件的暗中同意行为并阻碍传递(冒泡卡塔尔国。

findElement(event, tagName)

static

event: an Event object, tagName: name of the desired tag.

从事件源对象开端向上寻觅DOM树,直到找到第贰个符合tagName的要素

observe(element, name, observer, useCapture)

static

element: object or id, name: event name (like ‘click’, ‘load’, etc),
observer: function to handle the event, useCapture: if true, handles the
event in the capture phase and if false in the bubbling phase.

为对象的某些事件扩大二个处理函数。

stopObserving(element, name, observer, useCapture)

static

element: object or id, name: event name (like ‘click’), observer:
function that is handling the event, useCapture: if true handles the
event in the capture phase and if false in the bubbling phase.

和方面包车型地铁函数相反。

_observeAndCache(element, name, observer, useCapture)

static

 

民用函数,别管它。

unloadCache()

static

(none)

村办函数,别管它。从内存中清除全数的observers缓存。

上边代码演示怎么着给window加多一个load事件管理函数。 

<script> 

Event.observe(window, ‘load’, showMessage, false); 

function showMessage() { 

alert(‘Page loaded.’); 

</script> 

5.4 在prototype.js中定义新的靶子和类

另叁个以此顺序包扶持您的地点正是提供大多既协助面向对象设计意见又有共通效率的洋洋目的。 

The PeriodicalExecuter object

其一指标提供一定间距时间上再一次调用一个措施的逻辑。 

Method

Kind

Arguments

Description

[ctor](callback, interval)

constructor

callback: a parameterless function, interval: number of seconds

制造这么些指标的实例将会再度调用给定的议程。

Property

Type

Description

callback

Function()

被调用的不二秘技,该办法不能够传入参数。

frequency

Number

以秒为单位的距离。

currentlyExecuting

Boolean

意味着那么些艺术是不是正在施行。

5.4.1 The Prototype object

Prototype 未有太重大的功效,只是表明了该程序包的版本 。 

Property

Type

Description

Version

String

版本。

emptyFunction

Function()

空函数。

K

Function(obj)

二个但是回传参数的函数。

ScriptFragment

String

识别script的正则式。

5.4.2 The Enumerable object

Enumberable对象能够已更温婉的主意达成对列表样式的协会举办枚举。 

广大其余的对象通过增加自Enumberable对象来获得那么些有效的接口。

Method

Kind

Arguments

Description

each(iterator)

instance

iterator: a function object conforming to Function(value, index)

把各类element做为第一个参数,element的index作为第贰个参数调用iterator函数。

all([iterator])

instance

iterator: a function object conforming to Function(value, index)

本条函数会用给出的iterator测验整个会集,如若集合中任一成分在iterator函数测量检验中回到false或null,那么这一个函数再次回到false,不然再次回到true。若无交到iterator,那么就能够测验全部的要素是还是不是不等于false和null。你能够大致的把它看成是“质量评定每种成分都为非空非负”。 

any(iterator)

instance

iterator: a function object conforming to Function(value, index),
optional.

这么些函数会用给出的iterator测验整个集合,假诺集结中任一成分在iterator函数测试中回到true,那么这么些函数重返true,否则重回false。若无交到iterator,那么就能测验全部的成分是否有多少个不等于false和null。你可以省略的把它看作是“检查实验成分中是或不是有非空非负的”。 

collect(iterator)

instance

iterator: a function object conforming to Function(value, index)

 调用iterator函数依据集合中每种成分重返叁个结实,然后依据原本会集中的顺序,再次回到多个Array。 

detect(iterator)

instance

iterator: a function object conforming to Function(value, index)

聚聚集每种元素调用一回Iterator,再次来到第2个使Iterator重返True的要素,倘若最终都未有为true的调用,那么重返null。 

entries()

instance

(none)

等于toArray(). 

find(iterator)

instance

iterator: a function object conforming to Function(value, index)

等于 detect(). 

findAll(iterator)

instance

iterator: a function object conforming to Function(value, index)

汇集中每种成分调用Iterator,重回二个由全数调用Iterator重临结果至极true的成分构成的数组。和reject(卡塔尔(قطر‎相反。 

grep(pattern [, iterator])

instance

pattern: a RegExp object used to match the elements, iterator: a
function object conforming to Function(value, index)

 用pattern参数正则表明式测量检验会集中的各类成分,重回八个带有全数相称正则式的成分的Array,借使给出了Iterator,那么些每一种结果还要通过一下Iterator管理。 

include(obj)

instance

obj: any object

 推断集结中包不包括钦点对象。 

inject(initialValue, iterator)

instance

initialValue: any object to be used as the initial value, iterator: a
function object conforming to Function(accumulator, value, index)

 用Iterator联接全体集合中的成分。Iterator在被调用时把上二回迭代的结果做为第一个参数字传送给accumulator。第叁遍迭代时,accurmelator等于initialValue,最终回来accumulator的值。 

invoke(methodName [, arg1 [, arg2 […]]])

instance

methodName: name of the method that will be called in each element,
arg1..argN: arguments that will be passed in the method invocation.

汇集中的各样成分调用钦赐的函数(查看源代码能够发掘内定函数被调用时,this指针被传成当前成分),并传到给出的参数,再次回到调用结果组成的Array。 

map(iterator)

instance

iterator: a function object conforming to Function(value, index)

同collect(). 

max([iterator])

instance

iterator: a function object conforming to Function(value, index)

再次回到集结瓜时素的最大值,或调用Iterator后返回值的最大值(假设给出了Iterator的话卡塔尔国。 

member(obj)

instance

obj: any object

同 include(). 

min([iterator])

instance

iterator: a function object conforming to Function(value, index)

回到最小值,参见max(卡塔尔。 

partition([iterator])

instance

iterator: a function object conforming to Function(value, index)

回来贰个包括三个Array的Array,第二个Array蕴含全数调用Iterator重临True的要素,第叁个Array包蕴剩下的成分。假如Iterator未有提交,那么就依附成分自身判别。 

pluck(propertyName)

instance

propertyName name of the property that will be read from each element.
This can also contain the index of the element

回到各个元素的钦命属性名的性质的值组成的Array。 

reject(iterator)

instance

iterator: a function object conforming to Function(value, index)

和  findAll(State of Qatar相反(重临全体等于false的要素). 

select(iterator)

instance

iterator: a function object conforming to Function(value, index)

同 findAll(). 

sortBy(iterator)

instance

iterator: a function object conforming to Function(value, index)

听别人说各类成分调用Iterator重临的值举行排序再次来到三个Array。 

toArray()

instance

(none)

再次回到由集合全体因素结合的一个Array。 

zip(collection1[, collection2 [, … collectionN [,transform]]])

instance

collection1 .. collectionN: enumerations that will be merged, transform:
a function object conforming to Function(value, index)

统生龙活虎每一个给出的集中到眼下集合。合併操作重回三个新的array,那些array的要素个数和原集合的要素个数同样,那些array的各样成分又是三个子array,它归并了有着集合中雷同index的因素。如若transform函数被钦点,那么array的种种成分还大概会调用transform函数先做管理。举例:
[1,2,3].zip([4,5,6], [7,8,9]).inspect() 返回 “[
[1,4,7],[2,5,8],[3,6,9] ]” 

5.4.3 The Hash object

Hash对象实现生龙活虎种Hash构造,也等于二个Key:Value对的群集。 

Hash中的每一种Item是一个有五个因素的array,前三个是Key,后多少个是Value,每个Item也许有多少个不需加以表达的质量,key和value。 

Method

Kind

Arguments

Description

keys()

instance

(none)

回来全体Item的key的聚集的多个array。 

values()

instance

(none)

归来全数Item的value的聚众的二个array。 

merge(otherHash)

instance

otherHash: Hash object

统生龙活虎给出的Hash,再次来到三个新Hash。 

toQueryString()

instance

(none)

以QueryString这样的体裁再次回到hash中保有的item,例如:
‘key1=value1&key2=value2&key3=value3’ 

inspect()

instance

(none)

用大器晚成种适于的艺术显示hash中的key:value对。

5.4.4 The ObjectRange class

继承自  Enumerable

用上、上面际描述三个对象区域。 

Property

Type

Kind

Description

start

(any)

instance

range的下面界

end

(any)

instance

range的上面界

exclusive

Boolean

instance

调整边界自个儿是否range的生机勃勃有个别。

Method

Kind

Arguments

Description

[ctor](start, end, exclusive)

constructor

start: the lower bound, end: the upper bound, exclusive: include the
bounds in the range?

成立叁个range对象,从start生成到end,这里要留意的是,start和end必段项不纯熟龙活虎致,况且该品种要有succ(卡塔尔方法。 

include(searchedValue)

instance

searchedValue: value that we are looking for

自己评论三个value是还是不是在range中。 

5.4.5 The Class object

在这里个顺序包中 Class 对象在宣称其余的类时候被用到
。用那一个目的申明类使得新类支持 initialize(卡塔尔国 方法,他起布局方法的功用。

看上面包车型地铁事例

//declaring the class 

var MySampleClass = Class.create(); 

 

//defining the rest of the class implmentation 

MySampleClass.prototype = { 

 

   initialize: function(message) { 

this.message = message; 

   }, 

 

   showMessage: function(ajaxResponse) { 

      alert(this.message); 

   } 

};  

 

//now, let’s instantiate and use one object 

var myTalker = new MySampleClass(‘hi there.’); 

myTalker.showMessage(); //displays alert 

Method

Kind

Arguments

Description

create(*)

instance

(any)

概念新类的结构方法。

5.4.6 The Ajax object

其一目标被看做其余提供AJAX作用的类的根对象。 

Property

Type

Kind

Description

activeRequestCount

Number

instance

正在管理中的Ajax央浼的个数。

Method

Kind

Arguments

Description

getTransport()

instance

(none)

再次来到新的XMLHttpRequest 对象。

5.4.7 The Ajax.Responders object

继承自 Enumerable

本条指标保险一个在Ajax相关事件产生时将被调用的对象的列表。比方,你要设置三个大局钩子来拍卖Ajax操作拾叁分,那么你就能够采取那一个目的。 

Property

Type

Kind

Description

responders

Array

instance

被登记到Ajax事件通报的指标列表。

Method

Kind

Arguments

Description

register(responderToAdd)

instance

responderToAdd: object with methods that will be called.

被传播参数的指标应饱含名如Ajax事件的多级措施(如onCreate,onComplete,onException)。通信事件引发全体被登记的目的的合适名称的函数被调用。 

unregister(responderToRemove)

instance

responderToRemove: object to be removed from the list.

 从列表中移除。 

dispatch(callback, request, transport, json)

instance

callback: name of the AJAX event being reported, request: the
Ajax.Request object responsible for the event, transport: the
XMLHttpRequest object that carried (or is carrying) the AJAX call, json:
the X-JSON header of the response (if present) 

遍历被注册的对象列表,寻觅有由callback参数决定的非常函数的指标。然后向那些函数字传送递此外的多少个参数,倘若Ajax响应中饱含二个包罗JSON内容的X-JSON
HTTP头,那么它会被热行并传到json参数。即便事件是onException,那么transport参数会被那多少个代替,json不会传送。 

5.4.8 The Ajax.Base class

本条类是其它在Ajax对象中定义的类的基类。 

Method

Kind

Arguments

Description

setOptions(options)

instance

options: AJAX options

设定AJAX操作想要的选项。

responseIsSuccess()

instance

(none)

归来 true 假如AJAX操作成功,不然为 false 。

responseIsFailure()

instance

(none)

与 responseIsSuccess() 相反。

5.4.9 The Ajax.Request class

继承自 Ajax.Base

封装 AJAX 操作 

Property

Type

Kind

Description

Events

Array

static

在AJAX操作中负有希望报告的平地风波/状态的列表。那一个列表包含:
‘Uninitialized’, ‘Loading’, ‘Loaded’, ‘Interactive’, 和 ‘Complete’。

transport

XMLHttpRequest

instance

承载AJAX操作的 XMLHttpRequest 对象。

url

string

instance

请求的URL。

Method

Kind

Arguments

Description

[ctor](url, options)

constructor

url: the url to be fetched, options: AJAX options

始建那一个目的的三个实例,它就要加以的选项下要求url。onCreate事件在调用constructor事被激发。
重要: 假若选拔的url受到浏览器的平安设置,他会或多或少功力也不起。
比比较多景色下,浏览器不会呈请与当前页面差异主机(域名卡塔尔的url。
你最棒只利用本地url来制止节制客商配置他们的浏览器(多谢Clay卡塔尔

evalJSON()

instance

(none)

其后生可畏措施显然不会被外表调用。它在Ajax响应中包含X-JSON
HTTP头时用来内部调用实行这个故事情节。

evalReponse()

instance

(none)

那也方法分明不会被表面调用,借使Ajax响应含有一个值为text/javascript的Cotent-Type头,那么这些措施就用被调用实践响应体。

header(name)

instance

name: HTTP header name

援用Ajax响应的头的剧情,在Ajax访问截止后再调用这一个办法。

onStateChange()

instance

(none)

其豆蔻年华措施平时不会被表面调用。
当AJAX央求状态改造的时候被这一个目的本身调用。

request(url)

instance

url: url for the AJAX call

以此办法平时不会被外表调用。已经在布局方法中调用了。

respondToReadyState(readyState)

instance

readyState: state number (1 to 4)

以此格局平常不会被外表调用。
当AJAX恳求状态改换的时候被这一个目的本身调用。

setRequestHeaders()

instance

(none)

这么些主意平时不会被表面调用。
被那些目的本人调用来构造在HTTP央求要发送的HTTP报头。

The options argument object

An important part of the AJAX operations is the options argument.
There’s no options class per se. Any object can be passed, as long as it
has the expected properties. It is common to create anonymous objects
just for the AJAX calls. 

Property

Type

Default

Description

method

String

‘post’

HTTP 央浼情势。

parameters

String

在HTTP央浼中传唱的url格式的值列表。

asynchronous

Boolean

true

钦定是还是不是做异步 AJAX 必要。

postBody

String

undefined

在HTTP POST的景观下,传入恳求体中的内容。

requestHeaders

Array

undefined

和央浼一同被盛传的HTTP底部列表, 这几个列表必得含有偶数个品种,
任何奇数项目是自定义的底部的称号,
接下来的偶数项目使这些尾部项目标字符串值。 例子:[‘my-header1’, ‘this is
the value’, ‘my-other-header’, ‘another value’] 

onXXXXXXXX

Function(XMLHttpRequest, Object)

undefined

在AJAX乞请中,当相应的风云/状态产生的时候调用的自定义方法。 举个例子 var
myOpts = {onComplete: showResponse, onLoaded: registerLoaded};.
那几个方法将被传播四个参数, 那一个参数是承载AJAX操作的 XMLHttpRequest
对象,另一个是含有被执行X-JSON响应HTTP头。

onSuccess

Function(XMLHttpRequest, Object)

undefined

当AJAX恳求成功做到的时候调用的自定义方法。 那一个法子将被传播一个参数,
那一个参数是承载AJAX操作的 XMLHttpRequest
对象,另一个是包罗被实践X-JSON响应HTTP头。

onFailure

Function(XMLHttpRequest, Object)

undefined

当AJAX诉求完结但现身谬误的时候调用的自定义方法。那些办法将被传到一个参数,
那一个参数是承载AJAX操作的 XMLHttpRequest
对象,另贰个是包括被实践X-JSON响应HTTP头。

onException

Function(Ajax.Request, exception)

undefined

当多个在顾客端推行的Ajax产生像空头响应或无效参数那样的相当景况时被调用的自定义函数。它采用四个参数,包蕴卓殊Ajax操作的Ajax.Request对象和特别对象。

insertion

an Insertion class

undefined

二个能决定怎么着插入新内容的类,能 Insertion.Before, Insertion.Top,
Insertion.Bottom, 或 Insertion.After. 只能动用于Ajax.Updater 对象. 

evalScripts

Boolean

undefined, false

决定当响应达到的时候是不是试行当中的脚本块,只在 Ajax.Updater 对象中动用。

decay

Number

undefined, 1

支配当最终一遍响应和前三回响应相同一时间在 Ajax.PeriodicalUpdater
对象中的减漫访谈的次数, 比如,假若设为2,后来的刷新和前边的结果大器晚成致,
这一个目的将静观其变2个设定的时间间距进行下三遍刷新, 假若又一次一样,
那么将静观其变4次,等等。 不设定那个只,恐怕设置为1,将制止访谈频率变慢。

frequency

Number

undefined, 2

用秒表示的刷新间的间距,只可以接收于 Ajax.PeriodicalUpdater  对象。 

5.4.10 The Ajax.Updater class

继承自 Ajax.Request

当呼吁的url重回少年老成段HTML而你想把它一贯放置到页面中八个特定的要素的时候被用到。
假使url的回到<script>
的块并且想在收受届期就推行它的时候也得以选择该目的。含有脚本的时候使用
evalScripts 选项。 

Property

Type

Kind

Description

containers

Object

instance

那几个指标饱含两特性情:AJAX央浼成功施行的时候用到 containers.success ,
不然的话用到 containers.failure 。

Method

Kind

Arguments

Description

[ctor](container, url, options)

constructor

container:this can be the id of an element, the element object itself,
or an object with two properties – object.success element (or id) that
will be used when the AJAX call succeeds, and object.failure element (or
id) that will be used otherwise. url: the url to be fetched, options:
AJAX options

始建三个用给定的选料央求给定的url的三个实例。

updateContent()

instance

(none)

其风流罗曼蒂克法子平时不会被表面调用。 当响应达到的时候,被这几个指标本人调用。
它会用HTML更新适当的因素恐怕调用在 insertion
选项中传播的点子-这么些措施将被传播多少个参数, 被更新的成分和响应文件。 

5.4.11 The Ajax.PeriodicalUpdater class

继承自Ajax.Base

本条类重复生成并选拔 Ajax.Updater 对象来刷新页面中的贰个元素。也许实践Ajax.Updater 能够实行的别样职务。更加的多音讯参谋 Ajax.Updater 参照他事他说加以考查 。 

Property

Type

Kind

Description

container

Object

instance

其生机勃勃值将一贯传入Ajax.Updater的构造方法。

url

String

instance

那个值将直接传入Ajax.Updater的构造方法。

frequency

Number

instance

一次刷新之间的间距 (不是作用卡塔尔(قطر‎ ,以秒为单位。 暗许2秒。 This 当调用
Ajax.Updater 对象的时候,那些数将和眼下的 decay 相乘。 

decay

Number

instance

重负实行职务的时候保持的衰落水平。

updater

Ajax.Updater

instance

末尾三回使用的 Ajax.Updater 对象

timer

Object

instance

通报对象该下一回修改时用到的JavaScript 沙漏。

Method

Kind

Arguments

Description

[ctor](container, url, options)

constructor

container:this can be the id of an element, the element object itself,
or an object with two properties – object.success element (or id) that
will be used when the AJAX call succeeds, and object.failure element (or
id) that will be used otherwise. url: the url to be fetched, options:
AJAX options

创建一个用给定的取舍央浼给定的url的多个实例。

start()

instance

(none)

以此点子经常不会被外表调用。
对象为了带头周期性实践职责的时候调用的不二诀要。 

stop()

instance

(none)

使对象截止实践周期职责。甘休后,假若有onComplete选项,那么迷惑callback。 

updateComplete()

instance

(none)

其黄金时代措施平常不会被外表调用。 被前段时间的 Ajax.Updater
使用,当二次呼吁停止的时候,它被视作布署下二遍倡议。 

onTimerEvent()

instance

(none)

本条点子平时不会被表面调用。当到下一遍创新时被中间调用。 

5.4.12 The Element object

那么些目的提供在操作DOM七月素时选择的作用性方法。

Method

Kind

Arguments

Description

addClassName(element, className)

instance

element: element object or id, className: name of a CSS class

将付出的className加多到对象的className属性中。

classNames(element)

instance

element: element object or id

再次来到一个Element.ClassName的目的表示CSS 给出对象有的class names。

cleanWhitespace(element)

instance

element: element object or id

消逝对象子元素中具有空白的text node。

empty(element)

instance

element: element object or id

回来三个布尔值提醒对象为空或只有空白字符。

getDimensions(element)

instance

element: element object or id

重返对象的尺码,重返值有七个属性,height和width。 

getHeight(element)

instance

element: element object or id

回去成分的 offsetHeight 。

getStyle(element, cssProperty)

instance

element: element object or id, cssProperty name of a CSS property
(either format ‘prop-name’ or ‘propName’ works).

归来给定对象的CSS属性值或从不点名cssProperty时回来null。

hasClassName(element, className)

instance

element: element object or id, className: name of a CSS class

回到 true 若是成分的类名中含有给定的类名

hide(elem1 [, elem2 [, elem3 […]]])

instance

elemN: element object or id

通过设定style.display 为 ‘none’来掩藏每种传入的成分。 

makeClipping(element)

instance

element: element object or id

能过设定overflow的值设定内容溢出剪辑。

makePositioned(element)

instance

element: element object or id

转移对象的style.position为’relative’。

remove(element)

instance

element: element object or id

从document对象中删除钦点的要素。

removeClassName(element, className)

instance

element: element object or id, className: name of a CSS class

从要素的类名中除去给定的类名。

scrollTo(element)

instance

element: element object or id

滚动window到对象的岗位。

setStyle(element, cssPropertyHash)

instance

element: element object or id, cssPropertyHash Hash object with the
styles to be applied.

坚决守护cssPropertyHash参数给目的设置CSS属性值。

show(elem1 [, elem2 [, elem3 […]]])

instance

elemN: element object or id

用设定它的 style.display 为 ”来展现各样传入的因素。 

toggle(elem1 [, elem2 [, elem3 […]]])

instance

elemN: element object or id

切换每八个传出成分的可视性。

undoClipping(element)

instance

element: element object or id

style.overflow的值重回上一个设定值。

undoPositioned(element)

instance

element: element object or id

消释对象的 style.position 为 ”

update(element, html)

instance

element: element object or id, html: html content

用给出的HTML参数替换对象的innerHTML,若是HTML参数中蕴藏<script>,那么它们不会被含有进去,不过会举行。 

visible(element)

instance

element: element object or id

回来一个布尔值提醒对象可不可以预知。

5.4.13 The Element.ClassNames class

继承自  Enumerable

在三个对象心仪味CSS class names的联谊。 

Method

Kind

Arguments

Description

[ctor](element)

constructor

element: any DOM element object or id

创办贰个目的,给出对象的CSS class names被展以往这几个ClassNames对象中。 

add(className)

instance

className: a CSS class name

把CSS class name包蕴进对象的class names 列表。 

remove(className)

instance

className: a CSS class name

从目的的class names列表中移除className 

set(className)

instance

className: a CSS class name

设定指标CSS class name为className,移除此外class names。 

5.4.14 The Abstract object

其一指标是这一个顺序包中其余类的根。它从未其余性质和格局。在这里个指标中定义的类能够被视为古板的抽象类。

5.4.15 The Abstract.Insertion class

本条类被视作其余提供动态内容插入功用的类的基类,它像三个抽象类相同被选用。

Method

Kind

Arguments

Description

[ctor](element, content)

constructor

element: element object or id, content: HTML to be inserted

创设三个能够扶植插入动态内容的靶子。

contentFromAnonymousTable()

instance

(none)

对content通过佚名表格变成一个Node数组。

Property

Type

Kind

Description

adjacency

String

static, parameter

以此参数钦定相对于给定成分,内容将被放置的任务。 恐怕的值是:
‘beforeBegin’, ‘afterBegin’, ‘beforeEnd’, 和 ‘afterEnd’.

element

Object

instance

与插入物做参谋成分对象。

content

String

instance

被插入的 HTML 。

5.4.16 The Insertion object

那一个指标是别的相仿功效的根。它从不其它性质和办法。在这里个目的中定义的类仍可以被视为守旧的抽象类。

5.4.17 The Insertion.Before class

继承自 Abstract.Insertion

在给定成分开头标志的前面插入HTML。

Method

Kind

Arguments

Description

[ctor](element, content)

constructor

element: element object or id, content: HTML to be inserted

波澜起伏自   Abstract.Insertion. 创造二个得以支持插入动态内容的指标。

上边包车型地铁代码

<br>Hello,  

<span id=”person” style=”color:red;”> 

Wiggum. Hows’it going? 

</span> 

<script> new Insertion.Before(‘person’, ‘Chief ‘);
</script> 

 

将HTML变成:

<br>Hello, Chief  

<span id=”person” style=”color:red;”>Wiggum. How’s it
going?</span> 

The Insertion.Top class

5.4.18 The Insertion.Top class

继承自 Abstract.Insertion

在给定成分第一身长节点地方插入 HTML。内容将坐落于成分的开头标志的紧前边。

Method

Kind

Arguments

Description

[ctor](element, content)

constructor

element: element object or id, content: HTML to be inserted

后续自  Abstract.Insertion. 创设二个方可扶助插入动态内容的指标。

上边包车型客车代码

<br>Hello,  

<span id=”person” style=”color:red;”> 

Wiggum. How’s it going? 

</span> 

<script> new Insertion.Top(‘person’, ‘Mr. ‘); </script> 

将把 HTML 变为:

<br>Hello, <span id=”person” style=”color:red;”>Mr. Wiggum.
How’s it going?</span>

5.4.19 The Insertion.Bottom class

继承自Abstract.Insertion

在给定成分最终一个子节点地点插入
HTML。内容将放在成分的终结标识的紧后边。

Method

Kind

Arguments

Description

[ctor](element, content)

constructor

element: element object or id, content: HTML to be inserted

Inherited from Abstract.Insertion. Creates an object that will help with
dynamic content insertion.

上边的代码

<br>Hello,  

<span id=”person” style=”color:red;”> 

Wiggum. Hows it going? 

</span> 

<script>  

new Insertion.Bottom(‘person’, ” What’s up?”);  

</script> 

将把 HTML 变为:

<br>Hello, <span id=”person” style=”color:red;”>Wiggum.
How’s it going? What’s up?</span>

5.4.20 The Insertion.After class

继承自Abstract.Insertion

在给定成分截至标志的背后插入HTML。

Method

Kind

Arguments

Description

[ctor](element, content)

constructor

element: element object or id, content: HTML to be inserted

Inherited from Abstract.Insertion. Creates an object that will help with
dynamic content insertion.

下边包车型大巴代码

<br>Hello, 

 <span id=”person” style=”color:red;”>Wiggum. How’s it
going?</span> 

<script>  

new Insertion.After(‘person’, ‘ Are you there?’);  

</script> 

将把 HTML 变为

<br>Hello, <span id=”person” style=”color:red;”>Wiggum. Hows
it going?

</span> Are you there?

5.4.21 The Field object

以此目的提供操作表单中的输入项目标功用性方法。

Method

Kind

Arguments

Description

clear(field1 [, field2 [, field3 […]]])

instance

fieldN: field element object or id 

免去传入表单中项目成分的值。

present(field1 [, field2 [, field3 […]]])

instance

fieldN: field element object or id 

独有在装有的表单项目都不为空时再次来到 true 。

focus(field)

instance

field: field element object or id

运动主旨到给定的表单项目。

select(field)

instance

field: field element object or id

分选扶持项目值选拔的表单项目标值。

activate(field)

instance

field: field element object or id

移动主题而且接受帮衬项目值选用的表单项目标值。

5.4.21 The Form object

这些目的提供操作表单和她俩的输入成分的功效性方法。

Method

Kind

Arguments

Description

serialize(form)

instance

form: form element object or id

回去url参数格式的项目名和值的列表,
如’田野(field卡塔尔国1=value1&田野2=value2&田野先生3=value3’。

findFirstElement(form)

instance

form: form element object or id

归来Form中首先个Enable的对象。

getElements(form)

instance

form: form element object or id

回到富含全数在表单中输入项目标 Array 对象。

getInputs(form [, typeName [, name]])

instance

form: form element object or id, typeName: the type of the input
element, name: the name of the input element.

回去叁个 Array 包蕴全体在表单中的 <input> 成分。 此外,
这一个列表能够对成分的等级次序或名字属性举行过滤。

disable(form)

instance

form: form element object or id

使表单中的全体输入项目无效。

enable(form)

instance

form: form element object or id

使表单中的全部输入项目有效。

focusFirstElement(form)

instance

form: form element object or id

激活第二个表单中可视的,有效的输入项目。

reset(form)

instance

form: form element object or id

重新苏醒设置表单。和调用表单对象的 reset(卡塔尔国 方法生龙活虎致。

5.4.22 The Form.Element object

那个指标提供表单对象中的可视和非可视成分的作用性方法。

Method

Kind

Arguments

Description

serialize(element)

instance

element: element object or id

回到元素的 名称=值 对, 如 ‘elementName=elementValue’。

getValue(element)

instance

element: element object or id

回来成分的值。

5.4.23 The Form.Element.Serializers object

这几个指标提供了中直接纳的用来增派深入剖判出表单成分的脚下值的有的管用的方法。

Method

Kind

Arguments

Description

inputSelector(element)

instance

element: object or id of a form element that has the checked property,
like a radio button or checkbox.

回到带有成分名称和值的 Array , 如 [‘elementName’, ‘elementValue’]

textarea(element)

instance

element: object or id of a form element that has the value property,
like a textbox, button or password field.

归来带有成分名称和值的 Array , 如 [‘elementName’, ‘elementValue’]

select(element)

instance

element: object of a <select> element

回到带有成分名称和颇有被接受的选项的值或文本的 Array , 如
[‘elementName’, ‘selOpt1 selOpt4 selOpt9’]

5.4.24 The Abstract.TimedObserver class

本条类是用以其余监听二个因素的值(大概别的类中关系的习性卡塔尔变化的类的基类,那个类像三个抽象类同样被利用。

子类能够被创建来监听如输入项目值,或style属性,或表格的行数,恐怕别的任何对追踪变化有关的事物。

子类必需落到实处那些点子来调控哪些才是被监听的因素的目前值。 

Method

Kind

Arguments

Description

[ctor](element, frequency, callback)

constructor

element: element object or id, frequency: interval in seconds, callback:
function to be called when the element changes

创办三个监听成分的对象。

getValue()

instance, abstract

(none)

子类必需得以达成那些法子以瘊定什么那个因素被监视的方今值。

registerCallback()

instance

(none)

其生机勃勃措施平常不会被表面调用。 被那么些指标本身调用来最早监听那一个成分。 

onTimerEvent()

instance

(none)

以此点子日常不会被外表调用。 被这一个指标本身调用来周期性的检讨那叁个成分。 

Property

Type

Description

element

Object

被监听的要素对象。

frequency

Number

每一趟检查中的以秒为单位的光阴间隔。

callback

Function(Object, String)

倘若成分退换那几个措施就可以被调用。 会接受到成分对象和新值作为参数。

lastValue

String

要素被考验的末梢一个值。

5.4.25 The Form.Element.Observer class

继承自 Abstract.TimedObserver

Abstract.TimedObserver
的一个兑现类用来监听表单输入项目标值的生成。当你想监听二个从未有过带报告值变化事件的成分的时候利用那么些类。否则的话使用
Form.Element.EventObserver 类取代。

Method

Kind

Arguments

Description

[ctor](element, frequency, callback)

constructor

element: element object or id, frequency: interval in seconds, callback:
function to be called when the element changes

继承自 Abstract.TimedObserver. 创设二个监听成分值属性的指标。

getValue()

instance

(none)

回到成分的值。

5.4.26 The Form.Observer class

继承自 Abstract.TimedObserver

Abstract.TimedObserver
的叁个兑现类用来监听表单中其余数据项的值的转移。当您想监听贰个一直不带报告值变化事件的因素的时候使用那些类。
不然的话使用类Form.伊芙ntObserver 代替。

Method

Kind

Arguments

Description

[ctor](form, frequency, callback)

constructor

form: form object or id, frequency: interval in seconds, callback
function to be called when any data entry element in the form changes

接轨自 Abstract.提姆edObserver. 创造八个监听表单变化的指标。

getValue()

instance

(none)

归来全部表单数据的大器晚成类别值。

5.4.27 The Abstract.EventObserver class

以此类被用作其余一些类的基类,那么些类具有在贰个因素的值改造事件发生的时候实行二个回调方法这么的功效。

类 Abstract.EventObserver
的八个目的足以绑定到一个成分上,不是二个帮别的的擦出了,而是依照他们交给成分的逐个施行那个回调方法。

单选按键和复选框的触发事件是 onclick
,而文本框和下拉列表框/下拉列表框的是 onchange 。  

Method

Kind

Arguments

Description

[ctor](element, callback)

constructor

element: element object or id, callback: function to be called when the
event happens

创造监听成分的对象。

getValue()

instance,abstract

(none)

子类必需贯彻那一个办法以瘊定什么这些因素被监视的眼下值。

registerCallback()

instance

(none)

其风华正茂措施平时不会被表面调用。 被对象调用来把温馨绑定到成分的轩然大波上。 

registerFormCallbacks()

instance

(none)

本条点子平日不会被表面调用。
被对象调用来把本人绑定到表单中的每三个数据项成分的平地风波上。 

onElementEvent()

instance

(none)

其风华正茂法子平日不会被外表调用。 将被绑定到成分的风云上。 

Property

Type

Description

element

Object

被监听的要素对象。

callback

Function(Object, String)

若是成分改善就调用的诀要。会选用到成分对象和新值作为参数。

lastValue

String

要素被查证的尾声多少个值。

5.4.28 The Form.Element.EventObserver class

继承自 Abstract.EventObserver

Abstract.EventObserver
的叁个贯彻类,它在监测到表单中数量项成分的值退换的呼应事件时候试行一个回调方法。
假设成分未有其它报告生成的平地风波,那么你能够利用 Form.Element.Observer
类代替。

Method

Kind

Arguments

Description

[ctor](element, callback)

constructor

element: element object or id, callback: function to be called when the
event happens

后续自 Abstract.伊夫ntObserver。 创设一个监听成分值属性的指标。

getValue()

instance

(none)

回到元素的值。

5.4.29 The Form.EventObserver class

继承自 Abstract.EventObserver

Abstract.伊夫ntObserver
的八个达成类,监听表单对象中隐含的其它对象的其他更动,用成分的平地风波检验值的变迁。假诺成分未有别的报告生成的事件,
那么你能够使用Form.Observer 类替代。 

Method

Kind

Arguments

Description

[ctor](form, callback)

constructor

form: form object or id, callback: function to be called when any data
entry element in the form changes

大浪涛沙自 Abstract.EventObserver。 创立三个监听成分值属性的靶子。

getValue()

instance

(none)

回去全体表单数据的意气风发类别值。

六:Position 对象 (预备文书档案卡塔尔国

这一个指标提供相当多和因素地点相关的不二诀窍。

Method

Kind

Arguments

Description

prepare()

instance

(none)

调动 deltaX 和 deltaY 属性来和谐在滚动地点中的变化。
记得在页面滚动之后的另向外调拨运输用的withinIncludingScrolloffset
以前调用那几个办法。

realOffset(element)

instance

element: object

回来这些因素的正确滚动偏差的 Array 对象,
包罗持有影响因素的轮转偏差。结果数组相仿 [total_scroll_left,
total_scroll_top]

cumulativeOffset(element)

instance

element: object

回这些成分的准确性滚动偏差的 Array 对象,
包括别的被停放的父成分强加偏差。结果数组相符 [total_offset_left,
total_offset_top]

within(element, x, y)

instance

element: object, x and y: coordinates of a point

测验给定的点的坐标是或不是在加以的因素的表面矩形范围之内。

withinIncludingScrolloffsets(element, x, y)

instance

element: object, x and y: coordinates of a point

 测量试验给定的点的坐标是不是在加以的要素的外表矩形范围之内(包括scroll
offsets)。

overlap(mode, element)

instance

mode: ‘vertical’ or ‘horizontal’, element: object

在调用这么些点子以前须要调用within(卡塔尔国。那几个主意再次来到0.0到1.0里面包车型大巴数字,来代表坐标在要素重叠的分数。
举例,如果成分是三个边长是100px的长方形的DIV,并且位居(300, 300卡塔尔(قطر‎,
然后 within(divSquare, 330, 330卡塔尔国;overlap(‘vertical’, divSquare卡塔尔国; 会再次来到0.10,意思是老大点坐落于DIV顶上部分边框以下 10% (30pxState of Qatar 的任务上。 

clone(source, target)

instance

source: element object or id, target: element object or id

改变目的元素的大大小小尺寸和职位与源成分的相符。

汉语版:THIN 最后更新:二零零六-3-31
prototype.js 是如何?
万意气风发您从未动用过闻名的prototype.js,那么让本人来报告您,prototype.js是由Sa…

发表评论

电子邮件地址不会被公开。 必填项已用*标注