2013-09-26 68 views
1

我已经在地图上,他们这样命名是EV1,EV2,EV3等结合JavaScript变量

当我点击一个链接我希望有一个弹出式,从图中可以打开,他们被触发等设定的标记对此,

ev1.openPopup(); 

但因为我不能写每个标记的弹出代码我得到了这样的

$(document).on('click', '.venname', function() { 
var myLinkId = $('.venname').attr('data-mylink'); 
    ev+myLinkId.openPopup(); 
}); 

一个jQuery代码一旦链接被点击的时候,会得到一个ID叫做数据myLink的和将它与ev结合起来,作为一个e xample当我点击舔一个,它会有一个名为1的属性,jQuery代码将得到1,并使变量ev1,并会触发弹出,但不知何故我不能让这个东西工作,并得到一个错误ev是没有定义的。

那么如何将ev与变量myLinkID结合起来呢?

+0

我认为你不能这样做。您正在尝试变量变量名称。 – 2013-09-26 08:04:46

+0

连续命名的变量是一个有缺陷的数据结构的强烈迹象。在这种情况下,你显然需要一个数组。 – georg

回答

2

可以使用原始对象或数组来存储标记对象:

var markers = {marker1: new Marker(...), marker2: new Marker(...), ... }; 

,然后就可以到达标记对象那样:

markers['marker'+markerId].openPopup(); 

的阵列例如:

var markers = [new Marker(...), new Marker(...), ...]; 

markers[markerIndex].openPopup();