<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      ExtJS入門之二 事件

      事件是指一個特定的動作,這個動作可以針對HTML元素的,如keydown,keyup,mouseover, mouseout等,也可以是對于其它自定義的動作,如對Ajax異步請求的響應等。在ExtJS中,該如何處理呢?

      1. 處理HTML元素的標準事件

      HTML元素的標準事件是指mouseover、mousedown、click、blur、focus、change等能夠直接對HTML元素發(fā)生的事件。在ExtJS中,這些事件的處理可以用如下的代碼:

      • 注冊一個事件處理函數(shù)使用: Ext.get('myElement').on('click', myHandler, myScope) myElement是要注冊的元素的ID,click是事件的名稱(注意,和HTML元素中的聲明onXXX不同,這里不需要on),myHandler是處理函數(shù)的函數(shù)名稱,myScope是一個可選的參數(shù),指定處理函數(shù)綁定的對象,也就是處理函數(shù)的作用域,如果不提供這個參數(shù),則是默認的window。
      • 撤銷一個事件處理函數(shù): Ext.get('myElement').un('click', myHandler, myScope) 參數(shù)的意義同上。

      ExtJS會根據(jù)不同的瀏覽器進行相應的處理,根本不需要理會用戶用的是什么瀏覽器。根據(jù)事件的不同,傳給處理函數(shù)的參數(shù)也會不同,這個只能參考ExtJS的文檔了,必要時還得參考源代碼。

      2. 處理自定義事件

      在ExtJS中使用自定義事件,需要從Ext.util.Observable繼承,示例代碼如下:

      Employee = function(name){
         this.name = name;
         this.addEvents({
            "fired" : true,
            "quit" : true
         });
      }
      Ext.extend(Employee, Ext.util.Observable, { ... });

      在這段代碼中,定義了一個Employee類,定義了fired和quit兩個事件。如何觸發(fā)這兩個事件呢,基類Ext.util.Observable提供了觸發(fā)自定義事件的方法fireEvent(eventName, arg1, arg2, ... argn), eventName是要觸發(fā)的時間的名稱(不區(qū)分大小寫),后面的參數(shù)arg1,arg2等是要傳給事件處理函數(shù)的參數(shù)。用上面的Employee類做示例,觸發(fā)quit事件:

      this.fireEvent('quit', this);

      這行代碼將觸發(fā)quit事件,并將Empolyee類的實例傳給quit事件的處理函數(shù),quit事件的訂閱可以采用如下代碼:

      function myHandler1(empolyee){ ... }
      function myHandler2(empolyee){ ... }
      
      var emp = new Empolyee('tom');
      emp.on('quit', myHandler1);
      emp.on('quit', myHandler2);

      在上面的代碼中,為quit事件注冊了兩個處理函數(shù)(myHandler1與myHandler),當quit事件被激發(fā)時,將會依次調(diào)用myHandler1和myHandler2兩個函數(shù)。

      值得注意的是,不管是HTML元素的標準事件還是自定義事件,如果為某個時間注冊了多個處理函數(shù),如前面的例子,如果myHandler1返回false的話,則會取消在myHandler1之后注冊的處理函數(shù)的執(zhí)行,即該事件被取消,從而停止繼續(xù)執(zhí)行該事件的處理函數(shù),而這個返回值false會作為事件激發(fā)的結果,返回給empolyee,即:

      var result = this.fireEvent('quit', this);
      if (result === false) {
         alert('event canceled'); //這里表示事件被某個處理函數(shù)取消
      }
      else {
         alert('event complete'); // 這里表示事件執(zhí)行完畢
      }

      通過Ext的自定義事件的機制,可以實現(xiàn)一對多的觀察者模式,也可以實現(xiàn)一對一的綁定模式,這一點,在ExtJS的開發(fā)中是很重要的。

      posted @ 2008-03-07 22:24  張志敏  閱讀(13588)  評論(1)    收藏  舉報
      主站蜘蛛池模板: 东京热一精品无码av| 成人性能视频在线| 亚洲av熟女国产一二三| 日韩精品av一区二区三区| 真人作爱免费视频| 另类 专区 欧美 制服| 亚洲精品一区二区三区蜜| 亚洲色大成网站WWW久久| 亚洲 欧美 影音先锋| 日韩激情无码av一区二区| 69精品丰满人妻无码视频a片| 精品国产乱码久久久久APP下载| 国精产品一区一区三区有限公司杨| 61精品人妻一区二区三区| 国产美女高潮流白浆视频| 自拍偷区亚洲综合第二区| 综1合AV在线播放| 丝袜美腿视频一区二区三区| 亚洲乱码国产乱码精品精| 国产精品理论片在线观看| 中年国产丰满熟女乱子正在播放| 亚洲综合在线日韩av| 亚洲精品国偷自产在线99人热| 国产成人亚洲精品成人区| 久久天天躁狠狠躁夜夜婷| 辽宁省| 无码人妻av免费一区二区三区| 国产在线无码视频一区二区三区| 精品无码成人久久久久久| 欧美一区二区三区欧美日韩亚洲 | 亚洲欧洲色图片网站| 五月婷婷激情第四季| 中文字幕人妻有码久视频| 中文字幕国产精品专区| 国产精品自在拍首页视频| 久久精品国产九一九九九| 久久se精品一区二区三区| 精品午夜福利无人区乱码| 国产永久免费高清在线观看| 国产卡一卡二卡三免费入口| 亚洲精品久久久久久无码色欲四季 |