zoukankan      html  css  js  c++  java
  • EXT核心API详解(五)Ext.EventManager/EventObject/CompositeElement/CompositeElementLite

    Ext.EventManager
    事件管理者中的大部分方法都在Ext中有定义,主要用于事件管理


    addListener( String/HTMLElement el, String eventName, Function handler,
    on( String/HTMLElement el, String eventName, Function handler, [Object scope], [Object options] ) : void
    onDocumentReady( Function fn, [Object scope], [boolean options] ) : void
    removeListener( String/HTMLElement el, String eventName, Function fn ) :
    un( String/HTMLElement el, String eventName, Function fn ) : Boolean
    参见Ext

    onWindowResize( Function fn, Object scope, boolean options ) : void
    窗口大小变更时触发

    onTextResize( Function fn, Object scope, boolean options ) : void
    活动文本尺寸变更时触发



    Ext.EventObject
    这两个类都定义在EventManager.js中,分开是为了逻辑上更清晰吧,这个类主要用于描述事件本身,一般用做事件处理方法的参数
    另外这个害定义了一些键值常量,比ascii码好记

    function handleClick(e){ // 这儿的e就是一个EventObject对象
        e.preventDefault();
        var target = e.getTarget();
        ...
     }
     var myDiv = Ext.get("myDiv");
     myDiv.on("click", handleClick);
     //or
     Ext.EventManager.on("myDiv", 'click', handleClick);
     Ext.EventManager.addListener("myDiv", 'click', handleClick);

    getCharCode() : Number
    getKey() : Number
    在非webkit|khtml类型网页中这两个方法是一样的,得到按键的值

    getPageX() : Number
    getPageY() : Number
    getXY() : Array
    得到事件坐标

    getRelatedTarget() : HTMLElement
    得到关联目标?我总是得到null

    getTarget( [String selector], [Number/Mixed maxDepth], [Boolean returnEl] ) :
    如果没有定义selector则直接返回target属性,如果定义了selector,则利用selector寻找祖先节点

    getTime() : Number
    得到事件发生的时间?

    getWheelDelta() : Number
    应该是个过时的方法,反正在ie和火狐下都不知道做什么用的,原意应该是得到鼠标的按键信息?

    hasModifier() : Boolean
    事件发生时是否同时按下了ctrl/alt/shift键之一?

    preventDefault() : void
    阻止浏览器的默认事件?

    stopEvent() : void
    preventDefault+stopPropagation

    stopPropagation() : void
    阻止事件冒泡

    within( Mixed el, [Boolean related] ) : Boolean
    如果事件的目标是el或者它的子节点将返回真


    Ext.CompositeElement类
    基础的复合元素类,为容器中每个元素创建一个Ext.Element对象
    虽然不是继承自Ext.Element,但事实上它几乎支持Element类的所有方法
    例:
    var els = Ext.select("#some-el div.some-class", true);
    els.setWidth(100);


    add( String/Array els ) : CompositeElement
    添加 css选择器els匹配的元素 或 元素组成的数组 到当前对象

    clear() : void
    清除所有元素

    contains() : Boolean
    应该是contains(Mixed el):Boolean,当前复合元素中是否含有el

    each( Function fn, [Object scope] ) : CompositeElement
    通过el,this,index参数为每个元素调用fn

    fill( String/Array els ) : CompositeElement
    clear()& add(els)

    filter( String selector ) : CompositeElement
    过滤

    first() : Ext.Element
    第一个元素

    getCount() : Number
    //元素的数量

    indexOf() : Boolean
    同contains一样应该有个Mixed参数

    item( Number index ) : Ext.Element
    第index个元素

    last() : Ext.Element
    最后一个元素

    removeElement( Mixed el, [Boolean removeDom] ) : CompositeElement
    删除el元素

    replaceElement( Mixed el, Mixed replacement, [Boolean domReplace] ) : CompositeElement
    替换

    Ext.CompositeElementLite
    由Ext.CompositeElement继承而来,重写了一些方法,但没看出与父类有什么不同
    addElements /invoke /item /addListener /each /indexOf /replaceElement
  • 相关阅读:
    关于content-type请求头的说明
    RabbitMQ
    tornado
    flask总结之session,websocket,上下文管理
    爬虫相关问题总结
    爬虫之scrapy框架
    爬虫之Selenium模块
    爬虫之Beautifulsoup及xpath
    爬虫之requests
    SQLAlchemy
  • 原文地址:https://www.cnblogs.com/meetrice/p/1206047.html
Copyright © 2011-2022 走看看