天天看點

dojo.connect初解

DOJO常用

1,通過dojo.require以類似C程式設計中#include或者Java中import的方式加載所需的部件

如dojo.require("dojo.parser");dojo.require("dijit.form.Button");

2,跨域自定義子產品

Dojo配置,djConfig="baseUrl:'./'"

注冊子產品的路徑,dojo.registerModulePath("dtdg","./dtdg");

加載自定義子產品,dojo.require("dtdg.foo");

3,本地工具箱子產品

直接加載自定義子產品,dojo.require("dtdg.foo");

4,為對象注冊事件

dojo.connect();

5,json和字元串之間轉換

dojo.fromJson( json);//傳回JavaScript對象,json對象

dojo.toJson( json, prettyPrint);//傳回字元串

6,Ajax通信

dojo.xhrGet( args);dojo.xhrPost( args);

dojo.xhr( method, args, hasBody);

7,本地化

djConfig="dojo.local:'zh'"

8,控件、布局等都在dijit中

介紹

每個流行的工具包中,總有一些異常出彩的閃光點。dojo.connect就是dojo工具包中,與JavaScript事件機制相關的重磅功能。

     在JavaScript的使用場景中,我們經常需要偵聽某些事件的觸發,然後進行相應的(函數)處理。比如最常見的,當點選登入頁面的登入節點時,JavaScript能夠察覺到,并随之将使用者登入資訊發送到背景。下面先來看看dojo.connect的參數

 dojo.connect(obj, event, context, method, dontFix);

參數 類型 描述
obj Object|null 事件關聯的對象。最常見的是DOM node,關聯的事件會被委托到DOM事件管理器(除非dontFix為true);也可以是其他JavaScript Object;或者幹脆就是null,這時就是預設為dojo.global (window)。
event String 上面obj需要關聯的事件的名稱。比如DOM node的”onclick”之類的。
context Object|null 前面兩個參數講的都是關聯的“源”,這兒開始就是講關聯的“目标”了。context為後面的method提供了執行上下文環境,相當于method的this。如果context為null且method是一個function,則method會繼承event的context。如果method是一個string,則context必須是method的源對象。如果context為null,則預設為dojo.global。
method String|Function 當event被觸發後調用的目标函數。可以是函數引用,或者context中的函數名稱。此method會拿到和事件同樣的參數。
dontFix Boolean 可選項。如果obj參數是DOM node,當設定dontFix為true時,可以阻止關聯被委托到DOM事件管理器。(貌似很強大的功能)

     從表面上看,dojo.connect就是一個單純的函數,完成單純的事件關聯功能。但由于支援參數的靈活配置及和其他dojo函數的有機組合,有時候可以造成一些奇妙效果

    這兒很淺顯地讨論一些目前能想到的dojo.connect特性。也歡迎有興趣的同志給出更多的應用場景。