欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
prototype.js開(kāi)發(fā)筆記

prototype.js開(kāi)發(fā)筆記


覆蓋版本 1.3.1

1. Prototype是什么?

或許你還沒(méi)有用過(guò)它, prototype.js 是一個(gè)由Sam Stephenson寫(xiě)的JavaScript包。這個(gè)構思奇妙編寫(xiě)良好的一段兼容標準的一段代碼將承擔創(chuàng )造胖客戶(hù)端, 高交互性WEB應用程序的重擔。輕松加入Web 2.0特性。

如果你最近體驗了這個(gè)程序包,你很可能會(huì )發(fā)現文檔并不是它的強項之一。像所有在我之前的開(kāi)發(fā)者一樣,我只能一頭扎進(jìn)prototype.js的源代碼中并且試驗其中的每一個(gè)部分。 我想當我學(xué)習他的時(shí)候記寫(xiě)筆記然后分享給其他人將會(huì )很不錯。

我也一起提供了這個(gè)包的對象,類(lèi),方法和擴展的 非官方參考 。

2. 通用性方法

這個(gè)程序包里面包含了許多預定義的對象和通用性方法。編寫(xiě)這些方法的明顯的目的就是為了減少你大量的重復編碼和慣用法。

2.1. 使用 $()方法

$() 方法是在DOM中使用過(guò)于頻繁的 document.getElementById() 方法的一個(gè)便利的簡(jiǎn)寫(xiě),就像這個(gè)DOM方法一樣,這個(gè)方法返回參數傳入的id的那個(gè)元素。

比起DOM中的方法,這個(gè)更勝一籌。你可以傳入多個(gè)id作為參數然后 $() 返回一個(gè)帶有所有要求的元素的一個(gè) Array 對象。下面的例子會(huì )向你描述這些。

<HTML><HEAD><TITLE> Test Page </TITLE><script src="prototype-1.3.1.js"></script><script>    function test1()    {        var d = $(‘myDiv‘);        alert(d.innerHTML);    }    function test2()    {        var divs = $(‘myDiv‘,‘myOtherDiv‘);        for(i=0; i<divs.length; i++)        {            alert(divs[i].innerHTML);        }    }</script></HEAD><BODY>    <div id="myDiv">        <p>This is a paragraph</p>    </div>    <div id="myOtherDiv">        <p>This is another paragraph</p>    </div>    <input type="button" value=Test1 onclick="test1();"><br>    <input type="button" value=Test2 onclick="test2();"><br></BODY></HTML>

這個(gè)方法的另一個(gè)好處就是你可以傳入id字符串或者元素對象自己,這使得在創(chuàng )建可以傳入任何形式參數的方法的時(shí)候, 它變得非常有用。

2.2. 使用$F()方法

$F()方法是另一個(gè)非常受歡迎的簡(jiǎn)寫(xiě)。它可以返回任何輸入表單控件的值,如文本框或下拉框。 這個(gè)方法可以傳入元素的id或者元素自己。

<script>    function test3()    {        alert(  $F(‘userName‘)  );    }</script><input type="text" id="userName" value="Joe Doe"><br> <input type="button" value=Test3 onclick="test3();"><br>

2.3. 使用Try.these()方法

Try.these() 方法使得實(shí)現當你想調用不同的方法直到其中的一個(gè)成功正常的這種需求變得非常容易, 他把一系列的方法作為參數并且按順序的一個(gè)一個(gè)的執行這些方法直到其中的一個(gè)成功執行,返回成功執行的那個(gè)方法的返回值。

在下面的例子中, xmlNode.text在一些瀏覽器中好用,但是xmlNode.textContent在另一些瀏覽器中正常工作。 使用Try.these()方法我們可以得到正常工作的那個(gè)方法的返回值。

<script>function getXmlNodeValue(xmlNode){    return Try.these(        function() {return xmlNode.text;},        function() {return xmlNode.textContent;)        );}</script>

3. Ajax 對象

上面提到的共通方法非常好,但是面對它吧,它們不是最高級的那類(lèi)東西。它們是嗎?你很可能自己編寫(xiě)了這些甚至在你的腳本里面有類(lèi)似功能的方法。但是這些方法只是冰山一角。

我很肯定你對prototype.js感興趣的原因很可能是由于它的AJAX能力。所以讓我們解釋當你需要完成AJAX邏輯的時(shí)候,這個(gè)包如何讓它更容易。

Ajax 對象是一個(gè)預定義對象,由這個(gè)包創(chuàng )建,為了封裝和簡(jiǎn)化編寫(xiě)AJAX 功能涉及的狡猾的代碼。 這個(gè)對象包含一系列的封裝AJAX邏輯的類(lèi)。我們來(lái)看看它們的一些。

3.1. 使用 Ajax.Request類(lèi)

如果你不使用任何的幫助程序包,你很可能編寫(xiě)了整個(gè)大量的代碼來(lái)創(chuàng )建XMLHttpRequest對象并且異步的跟蹤它的進(jìn)程, 然后解析出響應 然后處理它。當你不需要支持多于一種類(lèi)型的瀏覽器時(shí)你會(huì )感到非常的幸運。

為了支持 AJAX 功能。這個(gè)包定義了 Ajax.Request 類(lèi)。

假如你有一個(gè)應用程序可以通過(guò)url http://yoursever/app/get_sales?empID=1234&year=1998與服務(wù)器通信。它返回下面這樣的XML 響應。

<?xml version="1.0" encoding="utf-8" ?><ajax-response>    <response type="object" id="productDetails">        <monthly-sales>            <employee-sales>                <employee-id>1234</employee-id>                <year-month>1998-01</year-month>                <sales>$8,115.36</sales>            </employee-sales>            <employee-sales>                <employee-id>1234</employee-id>                <year-month>1998-02</year-month>                <sales>$11,147.51</sales>            </employee-sales>        </monthly-sales>    </response></ajax-response>

Ajax.Request對象和服務(wù)器通信并且得到這段XML是非常簡(jiǎn)單的。下面的例子演示了它是如何完成的。

<script>    function searchSales()    {        var empID = $F(‘lstEmployees‘);        var y = $F(‘lstYears‘);        var url = ‘http://yoursever/app/get_sales‘;        var pars = ‘empID=‘ + empID + ‘&year=‘ + y;       var myAjax = new Ajax.Request(                    url,                    {method: ‘get‘, parameters: pars, onComplete: showResponse}                    );    }    function showResponse(originalRequest)    {        //put returned XML in the textarea        $(‘result‘).value = originalRequest.responseText;    }</script><select id="lstEmployees" size="10" onchange="searchSales()">    <option value="5">Buchanan, Steven</option>    <option value="8">Callahan, Laura</option>    <option value="1">Davolio, Nancy</option></select><select id="lstYears" size="3" onchange="searchSales()">    <option selected="selected" value="1996">1996</option>    <option value="1997">1997</option>    <option value="1998">1998</option></select><br><textarea id=result cols=60 rows=10 ></textarea>

你看到傳入 Ajax.Request構造方法的第二個(gè)對象了嗎? 參數{method: ‘get‘, parameters: pars, onComplete: showResponse} 表示一個(gè)匿名對象的真實(shí)寫(xiě)法。他表示你傳入的這個(gè)對象有一個(gè)名為 method 值為 ‘get‘的屬性,另一個(gè)屬性名為 parameters 包含HTTP請求的查詢(xún)字符串,和一個(gè)onComplete 屬性/方法包含函數showResponse。

還有一些其它的屬性可以在這個(gè)對象里面定義和設置,如 asynchronous,可以為truefalse 來(lái)決定AJAX對服務(wù)器的調用是否是異步的(默認值是 true)。

這個(gè)參數定義AJAX調用的選項。在我們的例子中,在第一個(gè)參數通過(guò)HTTP GET命令請求那個(gè)url,傳入了變量 pars包含的查詢(xún)字符串, Ajax.Request 對象在它完成接收響應的時(shí)候將調用showResponse 方法。

也許你知道, XMLHttpRequest在HTTP請求期間將報告進(jìn)度情況。這個(gè)進(jìn)度被描述為四個(gè)不同階段:Loading, Loaded, Interactive, 或 Complete。你可以使 Ajax.Request 對象在任何階段調用自定義方法 ,Complete 是最常用的一個(gè)。想調用自定義的方法只需要簡(jiǎn)單的在請求的選項參數中的名為 onXXXXX 屬性/方法中提供自定義的方法對象。 就像我們例子中的 onComplete 。你傳入的方法將會(huì )被用一個(gè)參數調用,這個(gè)參數是 XMLHttpRequest 對象自己。你將會(huì )用這個(gè)對象去得到返回的數據并且或許檢查包含有在這次調用中的HTTP結果代碼的 status 屬性。

還有另外兩個(gè)有用的選項用來(lái)處理結果。我們可以在onSuccess 選項處傳入一個(gè)方法,當AJAX無(wú)誤的執行完后調用, 相反的,也可以在onFailure選項處傳入一個(gè)方法,當服務(wù)器端出現錯誤時(shí)調用。正如onXXXXX 選項傳入的方法一樣,這兩個(gè)在被調用的時(shí)候也傳入一個(gè)帶有AJAX請求的XMLHttpRequest對象。

我們的例子沒(méi)有用任何有趣的方式處理這個(gè) XML響應, 我們只是把這段XML放進(jìn)了一個(gè)文本域里面。對這個(gè)響應的一個(gè)典型的應用很可能就是找到其中的想要的信息,然后更新頁(yè)面中的某些元素, 或者甚至可能做某些XSLT轉換而在頁(yè)面中產(chǎn)生一些HTML。

更完全的解釋?zhuān)垍⒄?Ajax.Request 參考Ajax選項參考。

3.2. 使用 Ajax.Updater 類(lèi)

如果你的服務(wù)器的另一端返回的信息已經(jīng)是HTML了,那么使用這個(gè)程序包中 Ajax.Updater 類(lèi)將使你的生活變得更加得容易。用它你只需提供哪一個(gè)元素需要被AJAX請求返回的HTML填充就可以了,例子比我寫(xiě)說(shuō)明的更清楚。

<script>    function getHTML()    {        var url = ‘http://yourserver/app/getSomeHTML‘;        var pars = ‘someParameter=ABC‘;         var myAjax = new Ajax.Updater(‘placeholder‘, url, {method: ‘get‘, parameters: pars});    }</script><input type=button value=GetHtml onclick="getHTML()"><div id="placeholder"></div>

你可以看到,這段代碼比前面的例子更加簡(jiǎn)潔,不包括 onComplete 方法,但是在構造方法中傳入了一個(gè)元素id。 我們來(lái)稍稍修改一下代碼來(lái)描述如何在客戶(hù)端處理服務(wù)器段錯誤成為可能。

我們將加入更多的選項, 指定處理錯誤的一個(gè)方法。這個(gè)是用 onFailure 選項來(lái)完成的。

我們也指定了一個(gè) placeholder 只有在成功請求之后才會(huì )被填充。為了完成這個(gè)目的我們修改了第一個(gè)參數從一個(gè)簡(jiǎn)單的元素id到一個(gè)帶有兩個(gè)屬性的對象, success (一切OK的時(shí)候被用到) 和 failure (有地方出問(wèn)題的時(shí)候被用到) 在下面的例子中沒(méi)有用到failure屬性,而僅僅在 onFailure 處使用了 reportError 方法。

<script>    function getHTML()    {        var url = ‘http://yourserver/app/getSomeHTML‘;        var pars = ‘someParameter=ABC‘;        var myAjax = new Ajax.Updater(                    {success: ‘placeholder‘},                    url,                    {method: ‘get‘, parameters: pars, onFailure: reportError});    }    function reportError(request)    {        alert(‘Sorry. There was an error.‘);    }</script><input type=button value=GetHtml onclick="getHTML()"><div id="placeholder"></div>

如果你的服務(wù)器邏輯是返回JavaScript 代碼而不是單純的 HTML 標記, Ajax.Updater對象可以執行那段JavaScript代碼。為了使這個(gè)對象對待響應為JavaScript,你只需在最后參數的對象構造方法中簡(jiǎn)單加入evalScripts: true屬性。

更完全的解釋?zhuān)垍⒄?Ajax.Updater 參考Ajax選項參考 。

4. prototype.js參考

4.1. JavaScript 類(lèi)的擴展

prototype.js 包中加入功能的一種途徑就是擴展已有的JavaScript 類(lèi)。

4.2. 對 Object 類(lèi)的擴展

Table 1. Object 類(lèi)的擴展

方法類(lèi)別參數描述
extend(destination, source)staticdestination: 任何對象, source: 任何對象用從 sourcedestination復制所有屬性和方法的方式 來(lái)提供一種繼承機制。
extend(object)instance任何對象用從傳入的 object 中復制所有屬性和方法的方式 來(lái)提供一種繼承機制。

4.3. 對 Number 類(lèi)的擴展

Table 2. Number 類(lèi)的擴展

方法類(lèi)別參數描述
toColorPart()instance(none)返回數字的十六進(jìn)制描述, 當在HTML中轉換為RGB顏色組件到HTML中使用的顏色。

4.4. 對 Function 類(lèi)的擴展

Table 3. 對 Function 類(lèi)的擴展

方法類(lèi)別參數描述
bind(object)instanceobject: 擁有這個(gè)方法的對象返回預先綁定在擁有該函數(=方法)的對象上的函數實(shí)例, 返回的方法將和原來(lái)的方法具有相同的參數。
bindAsEventListener(object)instanceobject: 擁有這個(gè)方法的對象返回預先綁定在擁有該函數(=方法)的對象上的函數實(shí)例, 返回的方法將把當前的事件對象作為它的參數。

讓我們看看這些擴展的具體例子。

<input type=checkbox id=myChk value=1> Test?<script>    //declaring the class    var CheckboxWatcher = Class.create();    //defining the rest of the class implmentation    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>

4.5. 對 String 類(lèi)的擴展

Table 4. String 類(lèi)的擴展

方法類(lèi)別參數描述
stripTags()instance(none)返回一個(gè)把所有的HTML或XML標記都移除的字符串。
escapeHTML()instance(none)返回一個(gè)把所有的HTML標記回避掉的字符串。
unescapeHTML()instance(none)escapeHTML()相反。

4.6. 對 document DOM 對象的擴展

Table 5. document DOM 對象的擴展

方法類(lèi)別參數描述
getElementsByClassName(className)instanceclassName: 關(guān)聯(lián)在元素上的CSS類(lèi)名返回給定的具有相同的CSS類(lèi)名的所有元素。

4.7. 對 Event 對象的擴展

Table 6. Event 對象的擴展

屬性類(lèi)型描述
KEY_BACKSPACENumber8: 常量,退格(Backspace)鍵的代碼。
KEY_TABNumber9: 常量,Tab鍵的代碼。
KEY_RETURNNumber13: 常量,回車(chē)鍵的代碼。
KEY_ESCNumber27: 常量, Esc鍵的代碼。
KEY_LEFTNumber37: 常量,左箭頭鍵的代碼。
KEY_UPNumber38: 常量,上箭頭鍵的代碼。
KEY_RIGHTNumber39: 常量,右箭頭鍵的代碼。
KEY_DOWNNumber40: 常量,下箭頭鍵的代碼。
KEY_DELETENumber46: 常量,刪除(Delete)鍵的代碼。
observers:Array緩存的觀(guān)察者的列表,這個(gè)對象內部具體實(shí)現的一部分。

Table 7. Event 對象的擴展

方法類(lèi)別參數描述
element(event)staticevent: 事件對象返回引發(fā)這個(gè)事件的元素。
isLeftClick(event)staticevent: 事件對象如果鼠標左鍵單擊返回true。
pointerX(event)staticevent: 事件對象返回在頁(yè)面上x(chóng)坐標。
pointerY(event)staticevent: 事件對象返回在頁(yè)面上y坐標。
stop(event)staticevent: 事件對象用這個(gè)方法來(lái)中止事件的默認行為來(lái)使事件的傳播停止。
findElement(event, tagName)staticevent: 事件對象, tagName: 指定標記的名字向 DOM 樹(shù)的上位查找,找到第一個(gè)給定標記名稱(chēng)的元素, 從這個(gè)元素開(kāi)始觸發(fā)事件。
observe(element, name, observer, useCapture)staticelement: 對象或者對象id, name: 事件名 (如 ‘click‘, ‘load‘, etc), observer: 處理這個(gè)事件的方法, useCapture: 如果true, 在捕捉到事件的階段處理事件 那么如果 false在bubbling 階段處理。加入一個(gè)處理事件的方法。
stopObserving(element, name, observer, useCapture)staticelement: 對象或者對象id, name: 事件名 (如 ‘click‘, ‘load‘, etc), observer: 處理這個(gè)事件的方法, useCapture: 如果true, 在捕捉到事件的階段處理事件 那么如果 false在bubbling 階段處理。刪除一個(gè)處理實(shí)踐的方法。
_observeAndCache( element, name, observer, useCapture)static 私有方法,不用管它。
unloadCache()static(none)私有方法,不用管它。清除內存中的多有觀(guān)察著(zhù)緩存。

讓我們看看怎樣用這個(gè)對象加入處理 window 對象的load事件的處理方法。

<script>    Event.observe(window, ‘load‘, showMessage, false);    function showMessage() {      alert(‘Page loaded.‘);    }</script>

4.8. 在 prototype.js中定義的新對象和類(lèi)

另一個(gè)這個(gè)程序包幫助你的地方就是提供許多既支持面向對象設計理念又有共通功能的許多對象。

4.9. PeriodicalExecuter 對象

這個(gè)對象提供一定間隔時(shí)間上重復調用一個(gè)方法的邏輯。

Table 8. PeriodicalExecuter 對象

方法類(lèi)別參數描述
[ctor](callback, interval)constructorcallback: 沒(méi)有參數的方法, interval: 秒數創(chuàng )建這個(gè)對象的實(shí)例將會(huì )重復調用給定的方法。

Table 9. PeriodicalExecuter 對象

屬性類(lèi)型描述
callbackFunction()被調用的方法,該方法不會(huì )被傳入參數。
frequencyNumber以秒為單位的間隔。
currentlyExecutingBoolean表示這個(gè)方法是否正在執行。

4.10. Prototype 對象

Prototype 沒(méi)有太重要的作用,只是聲明了該程序包的版本 。

Table 10. The Prototype object

屬性類(lèi)型描述
VersionString包的版本。
emptyFunctionFunction()空方法對象。

4.11. Class 對象

在這個(gè)程序包中 Class 對象在聲明其他的類(lèi)時(shí)候被用到 。用這個(gè)對象聲明類(lèi)使得新類(lèi)支持 initialize() 方法,他起構造方法的作用。

看下面的例子

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

Table 11. Class 對象

方法類(lèi)別參數描述
create(*)instance(any)定義新類(lèi)的構造方法。

4.12. Ajax 對象

這個(gè)對象被用作其他提供AJAX功能的類(lèi)的根對象。

Table 12. Ajax 對象

方法類(lèi)別參數描述
getTransport()instance(none)返回新的XMLHttpRequest 對象。

4.13. Ajax.Base 類(lèi)

這個(gè)類(lèi)是其他在A(yíng)jax對象中定義的類(lèi)的基類(lèi)。

Table 13. Ajax.Base 類(lèi)

方法類(lèi)別參數描述
setOptions(options)instanceoptions: AJAX 選項設定AJAX操作想要的選項。
responseIsSuccess()instance(none)返回 true 如果AJAX操作成功,否則為 false 。
responseIsFailure()instance(none)responseIsSuccess() 相反。

4.14. Ajax.Request 類(lèi)

繼承自 Ajax.Base

封裝 AJAX 操作

Table 14. Ajax.Request 類(lèi)

屬性類(lèi)型類(lèi)別描述
EventsArraystatic在A(yíng)JAX操作中所有可能報告的事件/狀態(tài)的列表。這個(gè)列表包括: ‘Uninitialized‘, ‘Loading‘, ‘Loaded‘, ‘Interactive‘, ‘Complete‘。
transportXMLHttpRequestinstance攜帶AJAX操作的 XMLHttpRequest 對象。

Table 15. Ajax.Request 類(lèi)

方法類(lèi)別參數描述
[ctor](url, options)constructorurl: 請求的url, options: AJAX 選項創(chuàng )建這個(gè)對象的一個(gè)實(shí)例,它將在給定的選項下請求url。 重要:如果選擇的url受到瀏覽器的安全設置,他會(huì )一點(diǎn)作用也不起。 很多情況下,瀏覽器不會(huì )請求與當前頁(yè)面不同主機(域名)的url。 你最好只使用本地url來(lái)避免限制用戶(hù)配置他們的瀏覽器(謝謝Clay)
request(url)instanceurl: AJAX 請求的url這個(gè)方法通常不會(huì )被外部調用。已經(jīng)在構造方法中調用了。
setRequestHeaders()instance(none)這個(gè)方法通常不會(huì )被外部調用。 被這個(gè)對象自己調用來(lái)配置在HTTP請求要發(fā)送的HTTP報頭。
onStateChange()instance(none)這個(gè)方法通常不會(huì )被外部調用。 當AJAX請求狀態(tài)改變的時(shí)候被這個(gè)對象自己調用。
respondToReadyState(readyState)instancereadyState: 狀態(tài)數字 (1 到 4)這個(gè)方法通常不會(huì )被外部調用。 當AJAX請求狀態(tài)改變的時(shí)候被這個(gè)對象自己調用。

4.15. options 參數對象

AJAX操作中一個(gè)重要的部分就是 options 參數。 本質(zhì)上沒(méi)有options類(lèi)。任何對象都可以被傳入,只要帶有需要的屬性。通常會(huì )只為了AJAX調用創(chuàng )建匿名類(lèi)。

Table 16. options 參數對象

屬性類(lèi)型Default描述
methodArray‘post‘HTTP 請求方式。
parametersString‘‘在HTTP請求中傳入的url格式的值列表。
asynchronousBooleantrue指定是否做異步 AJAX 請求。
postBodyStringundefined在HTTP POST的情況下,傳入請求體中的內容。
requestHeadersArrayundefined和請求一起被傳入的HTTP頭部列表, 這個(gè)列表必須含有偶數個(gè)項目, 任何奇數項目是自定義的頭部的名稱(chēng), 接下來(lái)的偶數項目使這個(gè)頭部項目的字符串值。 例子:[‘my-header1‘, ‘this is the value‘, ‘my-other-header‘, ‘a(chǎn)nother value‘]
onXXXXXXXXFunction(XMLHttpRequest)undefined在A(yíng)JAX請求中,當相應的事件/狀態(tài)形成的時(shí)候調用的自定義方法。 例如 var myOpts = {onComplete: showResponse, onLoaded: registerLoaded};. 這個(gè)方法將被傳入一個(gè)參數, 這個(gè)參數是攜帶AJAX操作的 XMLHttpRequest對象。
onSuccessFunction(XMLHttpRequest)undefined當AJAX請求成功完成的時(shí)候調用的自定義方法。 這個(gè)方法將被傳入一個(gè)參數, 這個(gè)參數是攜帶AJAX操作的 XMLHttpRequest對象。
onFailureFunction(XMLHttpRequest)undefined當AJAX請求完成但出現錯誤的時(shí)候調用的自定義方法。 這個(gè)方法將被傳入一個(gè)參數, 這個(gè)參數是攜帶AJAX操作的 XMLHttpRequest對象。
insertionFunction(Object, String)null為了把返回的文本注入到一個(gè)元素中而執行的方法。 這個(gè)方法將被傳入兩個(gè)參數,要被更新的對象并且只應用于 Ajax.Updater的響應文本 。
evalScriptsBooleanundefined, false決定當響應到達的時(shí)候是否執行其中的腳本塊,只在 Ajax.Updater 對象中應用。
decayNumberundefined, 1決定當最后一次響應和前一次響應相同時(shí)在 Ajax.PeriodicalUpdater 對象中的減漫訪(fǎng)問(wèn)的次數, 例如,如果設為2,后來(lái)的刷新和之前的結果一樣, 這個(gè)對象將等待2個(gè)設定的時(shí)間間隔進(jìn)行下一次刷新, 如果又一次一樣, 那么將等待4次,等等。 不設定這個(gè)只,或者設置為1,將避免訪(fǎng)問(wèn)頻率變慢。

4.16. Ajax.Updater 類(lèi)

繼承自 Ajax.Request

當請求的url返回一段HTML而你想把它直接放置到頁(yè)面中一個(gè)特定的元素的時(shí)候被用到。 如果url的返回<script> 的塊并且想在接收到時(shí)就執行它的時(shí)候也可以使用該對象。含有腳本的時(shí)候使用 evalScripts 選項。

Table 17. Ajax.Updater 類(lèi)

屬性類(lèi)型類(lèi)別描述
ScriptFragmentStringstatic可以判斷是否為腳本的正則表達式。
containersObjectinstance這個(gè)對象包含兩個(gè)屬性:AJAX請求成功執行的時(shí)候用到 containers.success , 否則的話(huà)用到 containers.failure 。

Table 18. Ajax.Updater 類(lèi)

方法類(lèi)別參數描述
[ctor](container, url, options)constructorcontainer:可以是元素的id, 也可以是元素自己, 或者可以是帶有2個(gè)屬性的對象 - object.success AJAX請求成功的時(shí)候用到的元素(或者id) 否則用到object.failure 中設定的元素(或id) ,url: 請求的url, options: AJAX 選項創(chuàng )建一個(gè)用給定的選項請求給定的url的一個(gè)實(shí)例。
updateContent()instance(none)這個(gè)方法通常不會(huì )被外部調用。 當響應到達的時(shí)候,被這個(gè)對象自己調用。 它會(huì )用HTML更新適當的元素或者調用在 insertion 選項中傳入的方法-這個(gè)方法將被傳入兩個(gè)參數, 被更新的元素和響應文本。

4.17. Ajax.PeriodicalUpdater 類(lèi)

繼承自 Ajax.Base

這個(gè)類(lèi)重復生成并使用 Ajax.Updater 對象來(lái)刷新頁(yè)面中的一個(gè)元素?;蛘邎绦?Ajax.Updater 可以執行的其它任務(wù)。更多信息參照 Ajax.Updater 參考 。

Table 19. Ajax.PeriodicalUpdater 類(lèi)

屬性類(lèi)型類(lèi)別描述
containerObjectinstance這個(gè)值將直接傳入Ajax.Updater的構造方法。
urlStringinstance這個(gè)值將直接傳入Ajax.Updater的構造方法。
frequencyNumberinstance兩次刷新之間的間隔 (不是頻率) ,以秒為單位。 默認2秒。 This 當調用 Ajax.Updater 對象的時(shí)候,這個(gè)數將和當前的 decay 相乘。
decayNumberinstance重負執行任務(wù)的時(shí)候保持的衰敗水平。
updaterAjax.Updaterinstance最后一次使用的 Ajax.Updater 對象
timerObjectinstance通知對象該下一次更新時(shí)用到的JavaScript 計時(shí)器。

Table 20. Ajax.PeriodicalUpdater 類(lèi)

方法類(lèi)別參數描述
[ctor](container, url, options)constructorcontainer:可以是元素的id, 也可以是元素自己, 或者可以是帶有2個(gè)屬性的對象 - object.success AJAX請求成功的時(shí)候用到的元素(或者id) 否則用到object.failure 中設定的元素(或id) ,url: 請求的url, options: AJAX 選項創(chuàng )建一個(gè)用給定的選項請求給定的url的一個(gè)實(shí)例。
start()instance(none)這個(gè)方法通常不會(huì )被外部調用。 對象為了開(kāi)始周期性執行任務(wù)的時(shí)候調用的方法。
stop()instance(none)這個(gè)方法通常不會(huì )被外部調用。 對象為了停止周期性執行任務(wù)的時(shí)候調用的方法。
updateComplete()instance(none)這個(gè)方法通常不會(huì )被外部調用。 被當前的 Ajax.Updater 使用,當一次請求結束的時(shí)候,它被用作計劃下一次請求。
onTimerEvent()instance(none)這個(gè)方法通常不會(huì )被外部調用。當到下一次更新時(shí)被內部調用。

4.18. Element 對象

這個(gè)對象提供在操作DOM中元素時(shí)使用的功能性方法。

Table 21. Element 對象

方法類(lèi)別參數描述
toggle(elem1 [, elem2 [, elem3 [...]]])constructorelemN: 元素對象或id切換每一個(gè)傳入元素的可視性。
hide(elem1 [, elem2 [, elem3 [...]]])instanceelemN: 元素對象或id用設定它的 style.display‘none‘來(lái)隱藏每個(gè)傳入的元素。
show(elem1 [, elem2 [, Slem3 [...]]])instanceelemN: 元素對象或id用設定它的 style.display ‘‘來(lái)顯示每個(gè)傳入的元素。
remove(element)instanceelement: 元素對象或id從document對象中刪除指定的元素。
getHeight(element)instanceelement: 元素對象或id返回元素的 offsetHeight 。
addClassName( element, className)instanceelement: 元素對象或id, className: CSS類(lèi)名向元素的類(lèi)名中加入給定的類(lèi)名。
hasClassName( element, className)instanceelement: 元素對象或id, className: CSS類(lèi)名返回 true 如果元素的類(lèi)名中含有給定的類(lèi)名
removeClassName( element, className)instanceelement: 元素對象或id, className: CSS類(lèi)名從元素的類(lèi)名中刪除給定的類(lèi)名。
cleanWhitespace( element )instanceelement: 元素對象或id刪除該元素的所有只含有空格的子節點(diǎn)。

4.19. Abstract 對象

這個(gè)對象是這個(gè)程序包中其他類(lèi)的根。它沒(méi)有任何屬性和方法。在這個(gè)對象中定義的類(lèi)可以被視為傳統的抽象類(lèi)。

4.20. Abstract.Insertion 類(lèi)

這個(gè)類(lèi)被用作其他提供動(dòng)態(tài)內容插入功能的類(lèi)的基類(lèi),它像一個(gè)抽象類(lèi)一樣被使用。

Table 22. Abstract.Insertion 類(lèi)

方法類(lèi)別參數描述
[ctor](element, content)constructorelement: 元素對象或id, content: 被插入的HTML創(chuàng )建一個(gè)可以幫助插入動(dòng)態(tài)內容的對象。

Table 23. Abstract.Insertion 類(lèi)

屬性類(lèi)型類(lèi)別描述
adjacencyStringstatic, parameter這個(gè)參數指定相對于給定元素,內容將被放置的位置。 可能的值是: ‘beforeBegin‘, ‘a(chǎn)fterBegin‘, ‘beforeEnd‘, 和 ‘a(chǎn)fterEnd‘.
elementObjectinstance與插入物做參照元素對象。
contentStringinstance被插入的 HTML 。

4.21. Insertion 對象

這個(gè)對象是其他類(lèi)似功能的根。它沒(méi)有任何屬性和方法。在這個(gè)對象中定義的類(lèi)仍然可以被視為傳統的抽象類(lèi)。

4.22. Insertion.Before 類(lèi)

繼承自 Abstract.Insertion

在給定元素開(kāi)始標記的前面插入HTML。

Table 24. Insertion.Before 類(lèi)

方法類(lèi)別參數描述
[ctor](element, content)constructorelement: 元素對象或id, content: 被插入的HTML繼承自 Abstract.Insertion. 創(chuàng )建一個(gè)可以幫助插入動(dòng)態(tài)內容的對象。

下面的代碼

<br>Hello, <span id="person" style="color:red;">Wiggum. How‘s it going?</span><script> new Insertion.Before(‘person‘, ‘Chief ‘); </script>

將把 HTML 變?yōu)?/p>

<br>Hello, Chief <span id="person" style="color:red;">Wiggum. How‘s it going?</span>

4.23. Insertion.Top 類(lèi)

繼承自 Abstract.Insertion

在給定元素第一個(gè)子節點(diǎn)位置插入 HTML。內容將位于元素的開(kāi)始標記的緊后面。

Table 25. Insertion.Top 類(lèi)

方法類(lèi)別參數描述
[ctor](element, content)constructorelement: 元素對象或id, content: 被插入的HTML繼承自 Abstract.Insertion. 創(chuàng )建一個(gè)可以幫助插入動(dòng)態(tài)內容的對象。

下面的代碼

<br>Hello, <span id="person" style="color:red;">Wiggum. How‘s it going?</span><script> new Insertion.Top(‘person‘, ‘Mr. ‘); </script>

將把 HTML 變?yōu)?/p>

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

4.24. Insertion.Bottom 類(lèi)

繼承自 Abstract.Insertion

在給定元素最后一個(gè)子節點(diǎn)位置插入 HTML。內容將位于元素的結束標記的緊前面。

Table 26. Insertion.Bottom 類(lèi)

方法類(lèi)別參數描述
[ctor](element, content)constructorelement: 元素對象或id, content: 被插入的HTML繼承自 Abstract.Insertion. 創(chuàng )建一個(gè)可以幫助插入動(dòng)態(tài)內容的對象。

下面的代碼

<br>Hello, <span id="person" style="color:red;">Wiggum. How‘s it going?</span><script> new Insertion.Bottom(‘person‘, " What‘s up?"); </script>

將把 HTML 變?yōu)?/p>

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

4.25. Insertion.After 類(lèi)

繼承自 Abstract.Insertion

在給定元素結束標記的后面插入HTML。

Table 27. Insertion.After 類(lèi)

方法類(lèi)別參數描述
[ctor](element, content)constructorelement: 元素對象或id, content: 被插入的HTML繼承自 Abstract.Insertion. 創(chuàng )建一個(gè)可以幫助插入動(dòng)態(tài)內容的對象。

下面的代碼

<br>Hello, <span id="person" style="color:red;">Wiggum. How‘s it going?</span><script> new Insertion.After(‘person‘, ‘ Are you there?‘); </script>

將把 HTML 變?yōu)?/p>

<br>Hello, <span id="person" style="color:red;">Wiggum. How‘s it going?</span> Are you there?

4.26. Field 對象

這個(gè)對象提供操作表單中的輸入項目的功能性方法。

Table 28. Field 對象

方法類(lèi)別參數描述
clear(field1 [, field2 [, field3 [...]]])instancefieldN: 元素對象或id清除傳入表單中項目元素的值。
present(field1 [, field2 [, field3 [...]]])instancefieldN: 元素對象或id只有在所有的表單項目都不為空時(shí)返回 true 。
focus(field)instancefieldN: 元素對象或id移動(dòng)焦點(diǎn)到給定的表單項目。
select(field)instancefieldN: 元素對象或id選擇支持項目值選擇的表單項目的值。
activate(field)instancefieldN: 元素對象或id移動(dòng)焦點(diǎn)并且選擇支持項目值選擇的表單項目的值。

4.27. Form 對象

這個(gè)對象提供操作表單和他們的輸入項目的功能性方法。

Table 29. Form 對象

方法類(lèi)別參數描述
serialize(form)instanceform: 表單元素或id返回url參數格式的項目名和值的列表, 如‘field1=value1&field2=value2&field3=value3‘。
getElements(form)instanceform: 表單元素或id返回包含所有在表單中輸入項目的 Array 對象。
getInputs(form [, typeName [, name]])instanceform: 表單元素或id, typeName: 輸入項目的類(lèi)型, name: 輸入項目的名稱(chēng)返回一個(gè) Array 包含所有在表單中的 <input> 元素。 另外, 這個(gè)列表可以對元素的類(lèi)型或名字屬性進(jìn)行過(guò)濾。
disable(form)instanceform: 表單元素或id使表單中的所有輸入項目無(wú)效。
enable(form)instanceform: 表單元素或id使表單中的所有輸入項目有效。
focusFirstElement(form)instanceform: 表單元素或id激活第一個(gè)表單中可視的,有效的輸入項目。
reset(form)instanceform: 表單元素或id重置表單。和調用表單對象的 reset() 方法一樣。

4.28. Form.Element 對象

這個(gè)對象提供表單對象中的可視和非可視元素的功能性方法。

Table 30. Form.Element 對象

方法類(lèi)別參數描述
serialize(element)instanceelement: 表單元素或id返回元素的 名稱(chēng)=值 對, 如 ‘elementName=elementValue‘。
getValue(element)instanceelement: 表單元素或id返回元素的值。

4.29. Form.Element.Serializers 對象

這個(gè)對象提供了內部使用的用來(lái)協(xié)助解析出表單元素的當前值功能性方法。

Table 31. Form.Element.Serializers 對象

方法類(lèi)別參數描述
inputSelector(element)instanceelement: 一個(gè)帶有checked屬性的表單元素或id, 如 radio 或 checkbox。返回帶有元素名稱(chēng)和值的 Array , 如 [‘elementName‘, ‘elementValue‘]
textarea(element)instanceelement: 一個(gè)帶有value屬性的表單元素或id, 如 textbox, button 或 password 項目。返回帶有元素名稱(chēng)和值的 Array , 如 [‘elementName‘, ‘elementValue‘]
select(element)instanceelement: 一個(gè)<select> 元素對象或id。返回帶有元素名稱(chēng)和所有被選擇的選項的值或文本的 Array , 如 [‘elementName‘, ‘selOpt1 selOpt4 selOpt9‘]

4.30. Abstract.TimedObserver 類(lèi)

這個(gè)類(lèi)是用于其它監聽(tīng)一個(gè)元素的值(或者任何類(lèi)中涉及的屬性)變化的類(lèi)的基類(lèi),這個(gè)類(lèi)像一個(gè)抽象類(lèi)一樣被使用。

子類(lèi)可以被創(chuàng )建來(lái)監聽(tīng)如輸入項目值,或style屬性,或表格的行數,或者其他任何對跟蹤變化相關(guān)的東西。

子類(lèi)必須實(shí)現這個(gè)方法來(lái)決定什么才是被監聽(tīng)的元素的當前值。

Table 32. Abstract.TimedObserver 類(lèi)

方法類(lèi)別參數描述
[ctor](element, frequency, callback)constructorelement: 元素對象或id, frequency: 以秒為單位的間隔, callback: 當元素改變的時(shí)候調用的方法。創(chuàng )建一個(gè)監聽(tīng)元素的對象。
registerCallback()instance(none)這個(gè)方法通常不會(huì )被外部調用。 被這個(gè)對象自己調用來(lái)開(kāi)始監聽(tīng)那個(gè)元素。
onTimerEvent()instance(none)這個(gè)方法通常不會(huì )被外部調用。 被這個(gè)對象自己調用來(lái)周期性的檢查那個(gè)元素。

Table 33. Abstract.TimedObserver 類(lèi)

屬性類(lèi)型描述
elementObject被監聽(tīng)的元素對象。
frequencyNumber每次檢查中的以秒為單位的時(shí)間間隔。
callbackFunction(Object, String)只要元素改變這個(gè)方法就會(huì )被調用。 會(huì )接收到元素對象和新值作為參數。
lastValueString元素被核實(shí)的最后一個(gè)值。

4.31. Form.Element.Observer 類(lèi)

繼承自 Abstract.TimedObserver

Abstract.TimedObserver 的一個(gè)實(shí)現類(lèi)用來(lái)監聽(tīng)表單輸入項目的值的變化。當你想監聽(tīng)一個(gè)沒(méi)有帶報告值變化事件的元素的時(shí)候使用這個(gè)類(lèi)。否則的話(huà)使用 Form.Element.EventObserver 類(lèi)代替。

Table 34. Form.Element.Observer 類(lèi)

方法類(lèi)別參數描述
[ctor](element, frequency, callback)constructorelement: 元素對象或id, frequency: 以秒為單位的間隔, callback: 當元素改變的時(shí)候調用的方法。繼承自 Abstract.TimedObserver. 創(chuàng )建一個(gè)監聽(tīng)元素值屬性的對象。
getValue()instance(none)返回元素的值。

4.32. Form.Observer 類(lèi)

繼承自 Abstract.TimedObserver

Abstract.TimedObserver 的一個(gè)實(shí)現類(lèi)用來(lái)監聽(tīng)表單中任何數據項的值的變化。當你想監聽(tīng)一個(gè)沒(méi)有帶報告值變化事件的元素的時(shí)候使用這個(gè)類(lèi)。 否則的話(huà)使用類(lèi)Form.EventObserver 代替。

Table 35. Form.Observer 類(lèi)

方法類(lèi)別參數描述
[ctor](form, frequency, callback)constructorform: 表單對象或id,繼承自 Abstract.TimedObserver. 創(chuàng )建一個(gè)監聽(tīng)表單變化的對象。
getValue()instance(none)返回所有表單數據的一系列值。

4.33. Abstract.EventObserver 類(lèi)

這個(gè)類(lèi)被用作其他一些類(lèi)的基類(lèi),這些類(lèi)具有在一個(gè)元素的值改變事件發(fā)生的時(shí)候執行一個(gè)回調方法這樣的功能。

類(lèi) Abstract.EventObserver 的多個(gè)對象可以綁定到一個(gè)元素上,不是一個(gè)幫其他的擦出了,而是按照他們付給元素的順序執行這些回調方法。

單選按鈕和復選框的觸發(fā)事件是 onclick ,而文本框和下拉列表框/下拉列表框的是 onchange 。

子類(lèi)必須實(shí)現這個(gè)方法來(lái)決定什么才是被監聽(tīng)的元素的當前值。

Table 36. Abstract.EventObserver 類(lèi)

方法類(lèi)別參數描述
[ctor](element, callback)constructorelement: 元素對象或id, callback: 當事件發(fā)生的時(shí)候調用的方法。創(chuàng )建監聽(tīng)元素的對象。
registerCallback()instance(none)這個(gè)方法通常不會(huì )被外部調用。 被對象調用來(lái)把自己綁定到元素的事件上。
registerFormCallbacks()instance(none)這個(gè)方法通常不會(huì )被外部調用。 被對象調用來(lái)把自己綁定到表單中的每一個(gè)數據項元素的事件上。
onElementEvent()instance(none)這個(gè)方法通常不會(huì )被外部調用。 將被綁定到元素的事件上。

Table 37. Abstract.EventObserver 類(lèi)

屬性類(lèi)型描述
elementObject被監聽(tīng)的元素對象。
callbackFunction(Object, String)只要元素改變就調用的方法。會(huì )接收到元素對象和新值作為參數。
lastValueString元素被核實(shí)的最后一個(gè)值。

4.34. Form.Element.EventObserver 類(lèi)

繼承自 Abstract.EventObserver

Abstract.EventObserver 的一個(gè)實(shí)現類(lèi),它在監測到表單中數據項元素的值改變的相應事件時(shí)候執行一個(gè)回調方法。 如果元素沒(méi)有任何報告變化的事件,那么你可以使用 Form.Element.Observer 類(lèi)代替。

Table 38. Form.Element.EventObserver 類(lèi)

方法類(lèi)別參數描述
[ctor](element, callback)constructorelement: 元素對象或id, callback: 當事件發(fā)生的時(shí)候調用的方法。繼承自 Abstract.EventObserver。 創(chuàng )建一個(gè)監聽(tīng)元素值屬性的對象。
getValue()instance(none)返回元素的值。

4.35. Form.EventObserver 類(lèi)

繼承自 Abstract.EventObserver

Abstract.EventObserver 的一個(gè)實(shí)現類(lèi),監聽(tīng)表單對象中包含的任何對象的任何變化,用元素的事件檢測值的變化。如果元素沒(méi)有任何報告變化的事件, 那么你可以使用Form.Observer 類(lèi)代替。

Table 39. Form.Element.EventObserver 類(lèi)

方法類(lèi)別參數描述
[ctor](form, callback)constructorform: 元素對象或id, callback: 當表單中任何數據項改變的時(shí)候調用的方法繼承自 Abstract.EventObserver。 創(chuàng )建一個(gè)監聽(tīng)元素值屬性的對象。
getValue()instance(none)返回所有表單數據的一系列值。

4.36. Position 對象 (預備文檔)

這個(gè)對象提供許多和元素位置相關(guān)的方法。

Table 40. Position 對象 (預備文檔)

方法類(lèi)別參數描述
prepare()instance(none)調整 deltaXdeltaY 屬性來(lái)協(xié)調在滾動(dòng)位置中的變化。 記得在頁(yè)面滾動(dòng)之后的任何調用的withinIncludingScrolloffset 之前調用這個(gè)方法。
realOffset(element)instanceelement: 對象或id返回這個(gè)元素的正確滾動(dòng)偏差的 Array 對象, 包括所有影響元素的滾動(dòng)偏差。結果數組類(lèi)似 [total_scroll_left, total_scroll_top]
cumulativeOffset(element)instanceelement: 對象或id回這個(gè)元素的正確滾動(dòng)偏差的 Array 對象, 包含任何被放置的父元素強加偏差。結果數組類(lèi)似 [total_offset_left, total_offset_top]
within(element, x, y)instanceelement: 對象, xy: 一個(gè)點(diǎn)的坐標測試給定的點(diǎn)的坐標是否在給定的元素的外部矩形范圍之內。
withinIncludingScrolloffsets(element, x, y)instanceelement: object, x and y: coordinates of a point 
overlap(mode, element)instancemode: ‘vertical‘ ‘horizontal‘, element: 對象在調用這個(gè)方法之前需要調用within() 。這個(gè)方法返回0.0到1.0之間的數字,來(lái)表示坐標在元素重疊的分數。 舉個(gè)例子,如果元素是一個(gè)邊長(cháng)是100px的正方形的DIV,并且位于(300, 300), 然后 within(divSquare, 330, 330);overlap(‘vertical‘, divSquare); 會(huì )返回 0.10,意思是那個(gè)點(diǎn)位于DIV頂部邊框以下 10% (30px) 的位置上。
clone(source, target)instancesource: 元素對象或 id, target: 元素對象或id改變目標元素的大小尺寸和位置與源元素的相同。

如果你發(fā)現錯誤,過(guò)失或信息不完全,或平淡無(wú)意義的東西,請 通知作者 ,作者會(huì )盡可能快的修正它,作者仍然在寫(xiě)其他沒(méi)寫(xiě)的類(lèi),來(lái)保持一致。 任何翻譯的過(guò)失,不足,詞不達意,表達含糊等請通知我,我會(huì )再加斟酌,找到合適的描述。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Prototype(1.5 rc2)使用指南
參數e(事件)究竟是什么以及為什么將它傳遞給JavaScript函數?
一些實(shí)用的 jQuery 技巧
jQuery最佳實(shí)踐
addCallback的instance參數說(shuō)明
使用jQuery簡(jiǎn)化Ajax開(kāi)發(fā)——Ajax開(kāi)發(fā)入門(mén)[1]
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久