最近在学习使用51地图的API,感觉 LTEvent 的bind的解释和实际的用法不一致。
官方API解释如下:
bind(obj
说 明:事件发生的对象
类 型:对象
,event
说 明:事件名称,例如“click”
类 型:事件名称字符串
,hObj
说 明:该事件被触发时将会执行hObj对象的hMethod方法
类 型:对象
,hMethod
说 明:该事件被触发时将会执行hObj对象的hMethod方法
类 型:函数句柄
,runOnce?
说 明:指定该事件绑定是否只运行一次,如果为true,该事件绑定将会在第一次运行后移除
类 型:布尔值
默认值:false
) 2.13 New! Listener 将hObj对象的hMethod方法绑定到obj的event事件,返回一个listener对象,对浏览器集成的事件和自定义的事件都能
使用
就是说,我在绑定事件后,执行的应该是hObj 这个对象的hMethod 。
下面是我的程序:
LTEvent.bind( this.maker , "mouseover" ,this,onMouseOver);
在这里,this是封装了一个标注对象的类的实例(标注对象变量名称就是"maker" );
这段代码是在初始化的时候执行的。
运行时爆出:找不到方法onMouseOver错误
如果我在页面上直接定义一个函数onMouseOver,便能成功的执行他了。这与API的解释明显不符的。
我感觉它是这样实现的:将hMethod函数 关联到hObj 的"hMethod"变量上,并在触发标注点的相关事件时执行 hObj 的hMethod方法。
而不是直接执行hObj 的hMethod 方法,是首先关联函数到对象!!
其中的差别是很大的:这样的话,如果我需要在触发事件的时候执行某一个对象的某个方法,我就需要这样写:
LTEvent.bind( this.maker , "mouseover" ,this,this.onMouseOver);
看了一下官方提供的示例:
function openInfoWin()
{
var win= this.openInfoWinHtml( "Hello World!" );
win.closeInfoWindowWithMouse();//定义在鼠标移出时关闭信息浮窗
}
function onLoad()
{
map=new LTMaps("mapDiv");
map.centerAndZoom(new LTPoint(11640969,3994940),6);
map.addControl(new LTStandMapControl());
var marker1 = new LTMarker( new LTPoint( 11636224 , 3991040 ) );
map.addOverLay( marker1 );
LTEvent.bind( marker1 , "mouseover" ,marker1,openInfoWin);//鼠标移到标记marker1上时运行marker1的openInfoWin方
法,显示信息浮窗
var marker2 = new LTMarker( new LTPoint( 11640224 , 3991040 ) );
map.addOverLay( marker2 );
LTEvent.bind( marker2 , "mouseover" ,marker2,openInfoWin);//鼠标移到标记marker2上时运行marker2的openInfoWin方
法,显示信息浮窗
}
也很明显的证明了我的猜测是正确的,用起来需要特别的注意了。
高手看一下我这样做是否是正确的?
分享到:
相关推荐
"天地图搜索及获取经纬度工具"是一款专为初学者设计的应用程序,它结合了天地图服务,使得用户能够方便地进行地理位置搜索,并且能够获取到相应的经纬度坐标。这个工具对于那些正在学习地理信息系统(GIS)、Web开发...
本项目适用于初学者,提供了详细的说明文档和源代码注释,使得学习过程更为直观易懂。在Kailh(Keil)集成开发环境中编写,这是一个广泛使用的51单片机编程工具。 “日”字寻迹技术是机器人竞赛中常见的挑战,它...
这个Demo涵盖了百度地图API的大部分基本功能,对于初学者来说,这是一个很好的学习和实践平台,能够帮助他们在短时间内快速理解和掌握API的使用。 首先,我们要了解百度地图API的基础知识。百度地图API是百度提供的...
而对于有经验的开发者,中文注释则可以帮助他们在处理复杂问题时,更快地定位和理解相关API的功能。 需要注意的是,虽然这里提到了.NET Framework 2.0,但随着技术的发展,微软已经发布了更高版本的.NET Framework...
腾讯地图Demo是一个包含了一系列地图应用示例的项目,旨在帮助开发者深入理解和学习如何利用腾讯地图API来构建自己的地图应用。这个Demo集成了多种地图功能,包括基础定位、地理围栏等,非常适合对地图开发感兴趣的...
C文件代码几乎完全注释,这意味着初学者可以通过阅读代码注释理解每一部分的功能和作用。注释是编程实践中非常重要的一个方面,它不仅有助于自我理解和调试,还能方便他人阅读和合作。在学习这些代码时,应注意理解...
在电子技术领域,51单片机是一种广泛应用的微控制器,尤其在初学者和教育领域。这个项目"基于51单片机的音乐播放器,源码详细注释"为学习者提供了一个实用且深入理解单片机控制的平台。通过分析这个项目,我们可以...
【小米便签源代码+注释】是一款专为学习Java编程和理解软件开发流程的...同时,注释的存在使得学习过程更加直观,有助于提高学习效率。对于想要提升Java编程技能或进入移动开发领域的学习者来说,这是一个宝贵的资源。
在本文中,我们将深入探讨如何在C# WinForm应用程序中集成和使用高德地图API,以便为初学者提供一个清晰的指南。首先,确保你已安装Visual Studio 2010,因为这是开发环境的基础。 **一、创建WinForm项目** 1. ...
标题“arcgis加载高德在线地图”指的是在ArcGIS环境中,利用编程接口(API)集成高德地图的服务,使得用户可以在ArcGIS应用程序中查看和操作高德地图的数据。高德地图是中国领先的数字地图提供商,提供了丰富的地理...
《Visual Studio系统注释中文包 第二版》是一款专为解决Visual Studio用户在使用过程中遇到的中文注释缺失问题而设计的工具包。这个第二版不仅涵盖了第一版的基本功能,还对原有的注释进行了深入的完善和扩展,旨在...
Js注释使用规则,初学者
在本文中,我们将详细介绍如何利用Leaflet这一流行的开源JavaScript库来加载百度地图、高德地图、谷歌地图以及天地图等多种在线地图服务。Leaflet因其轻量级、高性能且易于使用的特性而广受开发者欢迎,它支持多种...
在描述中提到的“有详细的注释,适合初学者学习参考”,意味着这个项目或教程不仅提供了源代码,还对代码进行了充分的注释,这对于初学者理解PPP协议和51单片机的编程至关重要。良好的注释能够帮助学习者了解每段...
代码是本人以前学C语言时练手写的,注释详细,结构简单,功能都封装为了函数,并有成绩排行榜等附加功能,因为是初学时写的,也很适合初学者阅读,只用到了数组、指针、结构体以及部分WINDOWS api(没有用到链表,...
IIC总线 Verilog FGPA模块实现 注释详尽 初学必备,实现了IIC读写EEPROM,已封装成模块,实例中为了testbench测试,将写入的数据变成了固定值,注释详尽,初学者也能明白,本人初学时编写,完整测试通过 /*** * ...
最后,`pythonAPI和学习笔记大礼包` 这个文件很可能包含了一位开发者或者教育者整理的Python学习笔记,可能包括个人的理解、实例代码、常见问题解答等。这样的笔记通常具有很高的实用价值,因为它们是实践经验和思考...
本手册的宗旨在于提供一个全面的MySQL C API中文参考,以便帮助初学者和专业人士更深入地了解和应用这些API。 手册首先介绍了libmysqld嵌入式MySQL服务器库。libmysqld库允许开发者将MySQL服务器的全部功能嵌入到...
**ArcGIS API for Android(10.2版本)** ArcGIS API for Android 是Esri公司为Android平台开发的一款强大的地理信息系统(GIS)开发工具。它允许开发者构建具有地图展示、地理编码、空间分析等功能的移动应用程序...
通过这个项目,初学者不仅可以学习到WebAPI的基本概念和使用,还能了解到如何在传统的WinForm应用中有效地利用WebAPI接口,提升应用程序的功能性和可扩展性。同时,实践中的问题解决和调试技巧也是学习过程中的宝贵...