之前,在 arcgis api for javascript 地图随着所在div大小的变化而改变的resize()事件 中,通过监听地图所属的div的宽高变化,来resize地图,之后将地图与easyui的选项卡tabs相结合,这里产生了一个问题。
我首先建立了几个选项卡,在其中一个选项卡中放置地图的div,然后切换选项卡,再切换回来的时候发现地图偏移到了最左上角。这是因为easyui在控制选项卡切换时,会将原来显示的选项卡宽高变成0,新选项卡的地图从0变成应有的宽高。这就导致了我的地图div也随之变成了0,resize事件重新加载地图,将地图加载到了一个宽高都是0的div中,从而产生了这个错误。
后来只好给resize事件加了一个限制,如果地图所属的div变得小于400*400,则不触发resize效果。当然这个值可以根据实际情况自定义。