事件有两种使用方式
第一种,针对Map、覆盖物等常用类,我们推荐直接使用这些类的对象的on、off成员方法来实现事件的简单绑定和移除,具有使用方便、代码简洁的特点
方法 | 返回值 | 说明 |
---|---|---|
on( eventName, handler, context) | 注册事件,给Map或者覆盖物对象注册事件 eventName:事件名称(必填), handler:事件回调函数(必填), context:事件回调中的上下文(可选,缺省时,handler中this为调用on方法的对象本身,否则this指向context引用的对象) 注意:多次绑定时,当eventName、handler函数对象、context对象有任意一个不一样就会再次绑定。 | |
off( eventName, handler, context) | 移除事件绑定 eventName:事件名称(必填), handler:事件功能函数(必填), context:事件上下文(可选,缺省时为调用off方法的对象本身,否则为context引用的对象) 注意:只有当off与on的eventName、handler函数对象、context对象完全一致时才能有效移除监听。 |
第二种,使用AMap.event命名空间
方法 | 返回值 | 说明 |
---|---|---|
addDomListener( instance, eventName, handler, context) | EventListener | 注册DOM对象事件:给DOM对象注册事件,并返回eventListener。运行AMap.event.removeListener(eventListener)可以删除该事件的监听器。 参数: instance:需注册事件的DOM对象(必填), eventName:事件名称(必填), handler:事件功能函数(必填), context:事件上下文(可选,缺省时,handler中this指向参数instance引用的对象,否则this指向context引用的对象) |
addListener( instance, eventName, handler, context) | EventListener | 注册对象事件:给对象注册事件,并返回eventListener。运行AMap.event.removeListener(eventListener)可以删除该事件的监听器。 参数: instance:需注册事件的对象(必填), eventName:事件名称(必填), handler:事件功能函数(必填), context:事件上下文(可选,缺省时,handler中this指向参数instance引用的对象,否则this指向context引用的对象) |
addListenerOnce( instance, eventName, handler, context) | EventListener | 类似于addListener,但事件只会被触发一次,之后将自动移除。 |
removeListener( listener) | none | 删除由上述 event.addDomListener 和 event.addListener 传回的指定侦听器。 |
trigger( instance, eventName, extArgs) | none | 触发非DOM事件 触发非DOM事件eventName时,extArgs将扩展到事件监听函数(handler)接受到的event参数中。 如:在extArgs内写入{m:10,p:2},eventName监听函数(handler)可以接收到包含m,p两个key值的event对象。 |
EventListener 对象规范(自v1.2 新增)
此对象没有构造函数,由 event 的 addDomListener()、addListener()方法返回,在需要移除事件监听器时,作为参数传递给 removeListener() 方法。
MapsEvent 对象规范(自v1.2 新增)
此对象用于表示地图、覆盖物、叠加层上的各种鼠标事件返回,包含以下字段:
MapsEventOptions | 类型 | 说明 |
---|---|---|
lnglat | LngLat | 发生事件时光标所在处的经纬度坐标。 |
pixel | Pixel | 发生事件时光标所在处的像素坐标。 |
type | String | 事件类型。 |
target | Object | 发生事件的目标对象,不同类型返回target不同。例如,事件对象是Marker,则target表示目标对象为Marker,事件对象是其他,则随之改变。 |