<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-9  評論-168  文章-266  trackbacks-0

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

    HTML元素的標準事件是指mouseover、mousedown、click、 blur、focus、change等。在ExtJS中,這些事件的處理如下:

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

    ExtJS 會根據不同的瀏覽器進行相應的處理,支持多瀏覽器。事件處理函數的參數只能參考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兩個事件。如何觸發這兩個事件呢,基類 Ext.util.Observable提供了觸發自定義事件的方法fireEvent(eventName, arg1, arg2, ... argn), eventName是要觸發的時間的名稱(不區分大小寫),后面的參數arg1,arg2等是要傳給事件處理函數的參數。用上面的Employee類做示例,觸發quit事件:

    this.fireEvent('quit', this);

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

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

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

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

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

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

    posted on 2010-03-31 11:26 紫蝶∏飛揚↗ 閱讀(2817) 評論(0)  編輯  收藏 所屬分類: EXTJS
    主站蜘蛛池模板: 天天摸天天碰成人免费视频| 日韩av无码久久精品免费| 毛片免费视频播放| 亚洲国产日韩在线人成下载| 亚欧免费无码aⅴ在线观看| 亚洲A∨无码一区二区三区| 久久国产精品一区免费下载| 91情国产l精品国产亚洲区 | 亚洲伊人色欲综合网| 日韩免费在线中文字幕| 亚洲一级黄色视频| a级成人免费毛片完整版| 久久久久亚洲精品成人网小说| 99re6在线视频精品免费下载| 亚洲成a人片7777| 最近免费中文字幕大全| 亚洲成a人无码亚洲成av无码| 国产一区在线观看免费| 精品97国产免费人成视频 | 久久久亚洲精品蜜桃臀| 免费国产午夜高清在线视频| 亚洲欧洲一区二区| 好吊妞在线新免费视频| www一区二区www免费| 亚洲丝袜美腿视频| 成人免费视频一区| caoporn成人免费公开| 亚洲高清资源在线观看| 国产麻豆剧传媒精品国产免费| a级毛片免费高清视频| 久久精品国产精品亚洲毛片| 好先生在线观看免费播放| 十八禁的黄污污免费网站| 亚洲av日韩av高潮潮喷无码 | 在线成人爽a毛片免费软件| 亚洲日本国产综合高清| 亚洲午夜福利精品无码| 18级成人毛片免费观看| 羞羞漫画登录页面免费| 91亚洲va在线天线va天堂va国产| 国产一级一片免费播放|