地图事件概述
浏览器中的JavaScript是“事件驱动的”,这表示JavaScript通过生成事件来响应交互,并期望程序能够“监听”感兴趣的活动。例如,在浏览器中,用户的鼠标和键盘交互可以创建在DOM内传播的事件。对某些事件感兴趣的程序会为这些事件注册JavaScript事件监听器,并在接收这些事件时执行代码。EV.Event用于注册事件处理程序和触发自定义事件,它的所有方法都是静态方法,不需要构造 EV.Event对象。
事件监听
地图API中可以为大多数的对象添加监听事件。例如,可以将click,dbclick、mouseout、mouseover等事件绑定到对象上。同时监听函数会得到相应的事件参数e,比如当用户点击地图时,e参数会包含鼠标所对应的地理位置point。
例如:EV.Event.addListener方法有三个参数,分别表示源对象、自定义事件、事件处理程序,在下面示例中,每当用户点击地图时,会弹出一个警告框。
事件参数
在标准的DOM事件模型中(DOM Level 2 Events),监听函数会得到一个事件对象e,在e中可以获取有关该事件的信息。同时在监听函数中this会指向触发该事件的DOM元素。 地图API的事件模型与此类似,在事件监听函数中传递事件对象e,每个e参数至少包含事件类型(type)和触发该事件的对象(target)。 API还保证函数内的this指向触发(同时也是绑定)事件的API对象。 例如,通过参数e得到点击的经纬度坐标。
移除监听事件
当您不再希望监听事件时,可以将事件监听进行移除。我们提供了EV.Event.clearListeners(source,event)来移除事件监听函数。
下面示例中,先为地图添加单击事件,然后再移除这个事件。