亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? events.js

?? 用來在地圖上做操作GIS,在地圖上做標(biāo)記
?? JS
?? 第 1 頁 / 共 2 頁
字號:
OpenLayers.Events = OpenLayers.Class({    /**      * Constant: BROWSER_EVENTS     * {Array(String)} supported events      */    BROWSER_EVENTS: [        "mouseover", "mouseout",        "mousedown", "mouseup", "mousemove",         "click", "dblclick",        "resize", "focus", "blur"    ],    /**      * Property: listeners      * {Object} Hashtable of Array(Function): events listener functions       */    listeners: null,    /**      * Property: object      * {Object}  the code object issuing application events      */    object: null,    /**      * Property: element      * {DOMElement}  the DOM element receiving browser events      */    element: null,    /**      * Property: eventTypes      * {Array(String)}  list of support application events      */    eventTypes: null,    /**      * Property: eventHandler      * {Function}  bound event handler attached to elements      */    eventHandler: null,    /**      * APIProperty: fallThrough      * {Boolean}      */    fallThrough: null,    /**     * Constructor: OpenLayers.Events     * Construct an OpenLayers.Events object.     *     * Parameters:     * object - {Object} The js object to which this Events object  is being     * added element - {DOMElement} A dom element to respond to browser events     * eventTypes - {Array(String)} Array of custom application events      * fallThrough - {Boolean} Allow events to fall through after these have     *                         been handled?     */    initialize: function (object, element, eventTypes, fallThrough) {        this.object     = object;        this.element    = element;        this.eventTypes = eventTypes;        this.fallThrough = fallThrough;        this.listeners  = {};        // keep a bound copy of handleBrowserEvent() so that we can        // pass the same function to both Event.observe() and .stopObserving()        this.eventHandler = OpenLayers.Function.bindAsEventListener(            this.handleBrowserEvent, this        );        // if eventTypes is specified, create a listeners list for each         // custom application event.        if (this.eventTypes != null) {            for (var i = 0; i < this.eventTypes.length; i++) {                this.addEventType(this.eventTypes[i]);            }        }                // if a dom element is specified, add a listeners list         // for browser events on the element and register them        if (this.element != null) {            this.attachToElement(element);        }    },    /**     * APIMethod: destroy     */    destroy: function () {        if (this.element) {            OpenLayers.Event.stopObservingElement(this.element);        }        this.element = null;        this.listeners = null;        this.object = null;        this.eventTypes = null;        this.fallThrough = null;        this.eventHandler = null;    },    /**     * APIMethod: addEventType     * Add a new event type to this events object.     * If the event type has already been added, do nothing.     *      * Parameters:     * eventName - {String}     */    addEventType: function(eventName) {        if (!this.listeners[eventName]) {            this.listeners[eventName] = [];        }    },    /**     * Method: attachToElement     *     * Parameters:     * element - {HTMLDOMElement} a DOM element to attach browser events to     */    attachToElement: function (element) {        for (var i = 0; i < this.BROWSER_EVENTS.length; i++) {            var eventType = this.BROWSER_EVENTS[i];            // every browser event has a corresponding application event             // (whether it's listened for or not).            this.addEventType(eventType);                        // use Prototype to register the event cross-browser            OpenLayers.Event.observe(element, eventType, this.eventHandler);        }        // disable dragstart in IE so that mousedown/move/up works normally        OpenLayers.Event.observe(element, "dragstart", OpenLayers.Event.stop);    },    /**     * APIMethod: register     * Register an event on the events object.     *     * When the event is triggered, the 'func' function will be called, in the     * context of 'obj'. Imagine we were to register an event, specifying an      * OpenLayers.Bounds Object as 'obj'. When the event is triggered, the      * context in the callback function will be our Bounds object. This means     * that within our callback function, we can access the properties and      * methods of the Bounds object through the "this" variable. So our      * callback could execute something like:      * :    leftStr = "Left: " + this.left;     *        *                   or     *       * :    centerStr = "Center: " + this.getCenterLonLat();     *     * Parameters:     * type - {String} Name of the event to register     * obj - {Object} The object to bind the context to for the callback#.     *                     If no object is specified, default is the Events's      *                     'object' property.     * func - {Function} The callback function. If no callback is      *                        specified, this function does nothing.     *      *      */    register: function (type, obj, func) {        if (func != null) {            if (obj == null)  {                obj = this.object;            }            var listeners = this.listeners[type];            if (listeners != null) {                listeners.push( {obj: obj, func: func} );            }        }    },    /**     * APIMethod: registerPriority     * Same as register() but adds the new listener to the *front* of the     *     events queue instead of to the end.     *         *     TODO: get rid of this in 3.0 - Decide whether listeners should be      *     called in the order they were registered or in reverse order.     *     *     * Parameters:     * type - {String} Name of the event to register     * obj - {Object} The object to bind the context to for the callback#.     *                If no object is specified, default is the Events's      *                'object' property.     * func - {Function} The callback function. If no callback is      *                   specified, this function does nothing.     */    registerPriority: function (type, obj, func) {        if (func != null) {            if (obj == null)  {                obj = this.object;            }            var listeners = this.listeners[type];            if (listeners != null) {                listeners.unshift( {obj: obj, func: func} );            }        }    },        /**     * APIMethod: unregister     *     * Parameters:     * type - {String}      * obj - {Object} If none specified, defaults to this.object     * func - {Function}      */    unregister: function (type, obj, func) {        if (obj == null)  {            obj = this.object;        }        var listeners = this.listeners[type];        if (listeners != null) {            for (var i = 0; i < listeners.length; i++) {                if (listeners[i].obj == obj && listeners[i].func == func) {                    listeners.splice(i, 1);                    break;                }            }        }    },    /**      * Method: remove     * Remove all listeners for a given event type. If type is not registered,     *     does nothing.     *     * Parameters:     * type - {String}      */    remove: function(type) {        if (this.listeners[type] != null) {            this.listeners[type] = [];        }    },    /**     * APIMethod: triggerEvent     * Trigger a specified registered event     *      * Parameters:     * type - {String}      * evt - {Event}      */    triggerEvent: function (type, evt) {        // prep evt object with object & div references        if (evt == null) {            evt = {};        }        evt.object = this.object;        evt.element = this.element;        // execute all callbacks registered for specified type        // get a clone of the listeners array to        // allow for splicing during callbacks        var listeners = (this.listeners[type]) ?                            this.listeners[type].slice() : null;        if ((listeners != null) && (listeners.length > 0)) {            for (var i = 0; i < listeners.length; i++) {                var callback = listeners[i];                var continueChain;                if (callback.obj != null) {                    // use the 'call' method to bind the context to callback.obj                    continueChain = callback.func.call(callback.obj, evt);                } else {                    continueChain = callback.func(evt);                }                    if ((continueChain != null) && (continueChain == false)) {                    // if callback returns false, execute no more callbacks.                    break;                }            }            // don't fall through to other DOM elements            if (!this.fallThrough) {                           OpenLayers.Event.stop(evt, true);            }        }    },    /**     * Method: handleBrowserEvent     * Basically just a wrapper to the triggerEvent() function, but takes      *     care to set a property 'xy' on the event with the current mouse      *     position.     *     * Parameters:     * evt - {Event}      */    handleBrowserEvent: function (evt) {        evt.xy = this.getMousePosition(evt);         this.triggerEvent(evt.type, evt)    },    /**     * Method: getMousePosition     *      * Parameters:     * evt - {Event}      *      * Returns      * {<OpenLayers.Pixel>} The current xy coordinate of the mouse, adjusted     *                      for offsets     */    getMousePosition: function (evt) {        if (!this.element.offsets) {            this.element.offsets = OpenLayers.Util.pagePosition(this.element);            this.element.offsets[0] += (document.documentElement.scrollLeft                         || document.body.scrollLeft);            this.element.offsets[1] += (document.documentElement.scrollTop                         || document.body.scrollTop);        }        return new OpenLayers.Pixel(            (evt.clientX + (document.documentElement.scrollLeft                         || document.body.scrollLeft)) - this.element.offsets[0]                         - (document.documentElement.clientLeft || 0),             (evt.clientY + (document.documentElement.scrollTop                         || document.body.scrollTop)) - this.element.offsets[1]                         - (document.documentElement.clientTop || 0)        );     },    CLASS_NAME: "OpenLayers.Events"});

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女国产一区二区三区| 制服丝袜亚洲网站| 日韩你懂的在线播放| 国产精品理伦片| 亚洲成人精品在线观看| 国产99久久久国产精品| 欧美欧美午夜aⅴ在线观看| 亚洲国产激情av| 亚洲国产综合人成综合网站| 成人永久免费视频| 69av一区二区三区| 玉足女爽爽91| 高清av一区二区| 精品国产乱码久久久久久久久| 夜夜爽夜夜爽精品视频| 成人av午夜电影| 精品国产凹凸成av人导航| 亚洲mv大片欧洲mv大片精品| 97久久精品人人爽人人爽蜜臀| 久久综合狠狠综合久久激情 | 91视频www| 久久综合久久99| 久久国产剧场电影| 欧美精品aⅴ在线视频| 亚洲一区二区三区不卡国产欧美 | ●精品国产综合乱码久久久久| 激情五月婷婷综合网| 日韩精品中午字幕| 久久精品99久久久| 精品嫩草影院久久| 九九国产精品视频| 2023国产一二三区日本精品2022| 久久国产夜色精品鲁鲁99| 欧美一级爆毛片| 美脚の诱脚舐め脚责91| 精品少妇一区二区三区| 国产制服丝袜一区| 中文在线免费一区三区高中清不卡| 久久精品国产一区二区三区免费看| 欧美一区二区三区在线视频| 日韩 欧美一区二区三区| 91精品国产麻豆国产自产在线| 午夜激情一区二区三区| 3751色影院一区二区三区| 日韩二区在线观看| 精品国产乱子伦一区| 国产又黄又大久久| 亚洲欧美综合网| 在线影视一区二区三区| 日韩在线一二三区| 日韩美一区二区三区| 国产精品一线二线三线精华| 国产免费成人在线视频| 色综合天天性综合| 午夜视频一区在线观看| 久久久久国产一区二区三区四区 | 国产日韩欧美电影| 色哟哟亚洲精品| 免费人成在线不卡| 久久久激情视频| 91玉足脚交白嫩脚丫在线播放| 伊人婷婷欧美激情| 日韩女优视频免费观看| zzijzzij亚洲日本少妇熟睡| 亚洲成人高清在线| www久久精品| 一本色道久久综合亚洲91| 天涯成人国产亚洲精品一区av| 精品久久久久久久久久久院品网 | 天天综合天天做天天综合| 精品少妇一区二区三区在线播放| 国产精品系列在线观看| 亚洲男同性恋视频| 欧美精品一区二区久久婷婷| 91麻豆蜜桃一区二区三区| 日本成人在线网站| 亚洲丝袜自拍清纯另类| 欧美大度的电影原声| 色婷婷亚洲精品| 精品一区二区三区免费观看| 一区二区三区资源| 久久久久久久综合日本| 欧美日韩在线电影| 国产成人av福利| 日本伊人午夜精品| 亚洲男同性视频| 欧美国产日韩在线观看| 日韩免费观看高清完整版| 日本道色综合久久| 国产精品一二三四区| 另类小说综合欧美亚洲| 亚洲午夜免费电影| 国产精品毛片久久久久久| 日韩美女在线视频 | 91久久精品一区二区二区| 狠狠色丁香婷婷综合久久片| 亚洲国产精品自拍| 亚洲成人免费视频| 亚洲最大成人综合| 亚洲婷婷国产精品电影人久久| 久久久久久久一区| 2021国产精品久久精品| 欧美zozozo| 日韩美女视频在线| 欧美顶级少妇做爰| 欧美理论在线播放| 欧美日韩精品欧美日韩精品| 91久久香蕉国产日韩欧美9色| 一本高清dvd不卡在线观看 | 亚洲综合自拍偷拍| 一区二区三区在线看| 亚洲精品你懂的| 亚洲精品精品亚洲| 一区二区三区在线影院| 亚洲午夜免费电影| 日韩精品亚洲专区| 日本不卡视频在线观看| 美女在线视频一区| 国产呦萝稀缺另类资源| 精品在线免费观看| 国产精品综合二区| 成人黄色综合网站| 成人性视频网站| 成人av电影在线观看| 99久久99久久久精品齐齐| 91蜜桃在线免费视频| 一本色道久久加勒比精品| 在线看国产一区| 欧美日韩久久久| 日韩欧美一区二区三区在线| 久久亚洲一区二区三区明星换脸| 久久久精品国产99久久精品芒果 | 99国产精品视频免费观看| 一道本成人在线| 欧美视频你懂的| 91精品一区二区三区久久久久久 | 男男视频亚洲欧美| 玖玖九九国产精品| 国产成人三级在线观看| 91丝袜美女网| 91精品国产一区二区| 国产丝袜美腿一区二区三区| 亚洲欧美怡红院| 五月天精品一区二区三区| 国内精品免费**视频| 94-欧美-setu| 8x8x8国产精品| 国产精品无圣光一区二区| 亚洲综合一二区| 国产尤物一区二区| 欧洲亚洲精品在线| 久久尤物电影视频在线观看| 亚洲日本丝袜连裤袜办公室| 视频在线观看一区| 国产一区二区三区香蕉| 91激情五月电影| 精品国产伦理网| 一区二区三区在线视频观看58| 精品一区二区在线视频| 91麻豆123| 久久综合久久综合久久| 亚洲一区二区黄色| 成人黄色av电影| 日韩欧美亚洲一区二区| 亚洲视频每日更新| 国产美女主播视频一区| 欧美日韩高清在线| 亚洲欧洲av在线| 国产精品91xxx| 日韩三级av在线播放| 亚洲伊人色欲综合网| 成人精品电影在线观看| 欧美不卡一区二区三区四区| 亚洲第一av色| 色综合一区二区| 国产精品萝li| 国产一区二区三区最好精华液| 欧美日韩国产不卡| 亚洲精品国产a久久久久久| 国产成人av电影在线观看| 欧美一区二区三区四区久久| 亚洲午夜三级在线| 在线亚洲人成电影网站色www| 国产三区在线成人av| 免费在线观看视频一区| 精品视频免费看| 一区二区在线观看免费| k8久久久一区二区三区 | 一本色道久久综合亚洲精品按摩| 久久午夜色播影院免费高清| 日本va欧美va欧美va精品| 欧美男生操女生| 一区二区三区欧美| 欧美做爰猛烈大尺度电影无法无天| 久久久国产精品麻豆| 国产一区二区三区电影在线观看| 精品久久免费看| 韩国女主播一区二区三区| 精品粉嫩超白一线天av| 国产一区二区h|