91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Ext.js4.2.1中事件機制的示例分析

發布時間:2021-12-03 14:45:07 來源:億速云 閱讀:169 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“Ext.js4.2.1中事件機制的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Ext.js4.2.1中事件機制的示例分析”這篇文章吧。

一: 簡介

Ext中的事件遵循樹狀模型,和事件相關的類主要有這么幾個:Ext.util.Observable,Ext.lib.Event,Ext.EventManager和Ext.EventObject.
Ext使用Ext.lib.Event,Ext.EventManager和Ext.EventObject對原生瀏覽器事件進行了封裝,最后給我們用的是一套統一的跨瀏覽器的通用事件接口。

二:Ext.util.Observable

Ext.util.Observable在Ext事件模型中有舉足輕重的地位,位于Ext組件的頂端,為Ext組件提供處理事件的最基本功能。所有繼承自Ext.util.Observable類的控件都可以支持事件。

  1. Ext.onReady(function() {

  2.         var test = Ext.get("test");

  3.         var test2 = Ext.get("test2");

  4.         //test.on("click", function() {

  5.         //    alert("handler1");

  6.         //});


  7.         //test.on("click", function() {

  8.         //    alert("handler2");

  9.         //});


  10.         Ext.define('People', {

  11.             config : {

  12.                 name : ''

  13.             },

  14.             //extend : Ext.util.Observable,

  15.             mixins : {

  16.                 observable : 'Ext.util.Observable'

  17.             },

  18.             info : function(event) {

  19.                 return this.name + " is " + (event ? "ing" : "doing nothing");

  20.             },

  21.             constructor : function(config) {

  22.                 var me = this;

  23.                 me.addEvents({

  24.                     'walk' : true,

  25.                     'eat' : true

  26.                 });


  27.                 me.initConfig(config);

  28.                 me.mixins.observable.constructor.call(this, config);

  29.             }

  30.         });


  31.         var people = Ext.create("People", {

  32.             name : "Alex"

  33.         });


  34.         people.on("walk", function() {

  35.             this.state = "walk";

  36.             Ext.Msg.alert("event", this.name + " is walking");

  37.         });


  38.         people.on("eat", function() {

  39.             this.state = "eat";

  40.             

  41.             Ext.Msg.alert("event", this.name + " is eating");

  42.         });


  43.         test.on("click", function() {

  44.             people.fireEvent("walk");

  45.         });


  46.         test2.on("click", function(e) {

  47.             alert(this.getX()+" , "+this.getY());

  48.             alert(e.getTarget().value);

  49.             people.fireEvent("eat");

  50.         });

  51.     });


三:Ext.lib.Event

Ext.lib.Event是一個工具類,實際中很少直接用到這個類,只是與事件相關的那些操作最后都會歸結為對這些底層函數的調用。
getX(),getY(),getXY()獲得發生的事件在頁面中的坐標位置。

getTarget() 返回事件的目標元素。

preventDefault() 用于取消瀏覽器當前事件所執行的默認操作,比如阻止頁面跳轉。

stopPropagation() 停止事件傳遞。

stopEvent() 相當于調用preventDefault()和stopPropagation()兩個函數

四:Ext.EventManager

Ext.EventManager 作為事件管理器,定義了一系列事件相關的處理函數,其中最常用的就是onDocumentReady和onWindowResize

Ext.onReady()就是Ext.EventManager.onDocumentReady()的簡寫形式,它會在頁面文檔渲染完畢

五:Ext.EventObject

Ext.EventObject是對事件的封裝,它提供了豐富的工具函數,幫助我們獲得事件相關的信息。通過Ext.EventObject幫助文檔可以了解到,它包含的許多函數都與Ext.lib.Event中的函數功能是相同甚至同名的,如getPageX()、getPageY()、getPageXY()和getTarget()等,這些函數實際上都是通過Ext.lib.Event實現的。


Ext.EventObject對Ext.lib.Event擴展的部分是對鼠標事件和按鍵事件的增強,定義了一系列按鍵,可以用來判斷某個鍵是否被按下:


Ext.get("text").on("keypress", function (e) {
    if (e.getKey() == Ext.EventObject.SPACE) {
        Ext.Msg.alert("提示", "你按了空格鍵!");
    }
});

以上是“Ext.js4.2.1中事件機制的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

灵宝市| 鲜城| 宁明县| 玉田县| 城步| 金塔县| 南昌市| 阜新| 纳雍县| 年辖:市辖区| 邵东县| 水富县| 鸡泽县| 舒城县| 中山市| 皮山县| 和田县| 宁武县| 高邮市| 赤壁市| 修水县| 宜春市| 道孚县| 水城县| 资中县| 浦城县| 万载县| 乐清市| 冀州市| 鄂温| 鹤庆县| 乐安县| 房产| 海丰县| 武宁县| 青海省| 旬邑县| 泾阳县| 绥德县| 平阳县| 武城县|