dojo.connect初解

knqiufan發表於2018-07-13

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(/*String*/ json);//返回JavaScript物件,json物件
dojo.toJson(/*Object*/ json, /*Boolean*/ prettyPrint);//返回字串
6,Ajax通訊
dojo.xhrGet(/*Object*/ args);dojo.xhrPost(/*Object*/ args);
dojo.xhr(/*String*/ method, /*Object*/ args, /*Boolean?*/ 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特性。也歡迎有興趣的同志給出更多的應用場景。 


相關文章