2013-09-26 71 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();