Javascript 使用传单onclick事件创建动态链接

Javascript 使用传单onclick事件创建动态链接,javascript,leaflet,Javascript,Leaflet,我在创建指向单独动态页面的链接时遇到问题,用户单击传单创建的标记时,会将链接指向该页面。下面的代码几乎完全有效;但是,当单击标记而不是转到相关页面时,所有标记都链接到循环生成的最后一个链接 //为每个结果在结果页面上的映射添加一个标记 函数Addmarker(markerary){ var dynamicname='marker'; var dynamicnumb='numb'; //创建一个空列表来保存每个标记 var-markerList=[]; //为每个结果创建一个标记并将其推送到ma

我在创建指向单独动态页面的链接时遇到问题,用户单击传单创建的标记时,会将链接指向该页面。下面的代码几乎完全有效;但是,当单击标记而不是转到相关页面时,所有标记都链接到循环生成的最后一个链接


//为每个结果在结果页面上的映射添加一个标记
函数Addmarker(markerary){
var dynamicname='marker';
var dynamicnumb='numb';
//创建一个空列表来保存每个标记
var-markerList=[];
//为每个结果创建一个标记并将其推送到markerList
对于(i=0;i
必须创建关联数组,并将每个数据的键保留在标记对象中

// generate a unique id
var toInt = parseInt(markerArray[i][2]);

// create marker object, add it to the map
var marker = L.marker([markerArray[i][0], markerArray[i][1]], {
  title: markerArray[i][3]}).on('click', function(e) {
     markerURL(e.target.ID); // url = markerList[e.target.ID][3];
  }).addTo(map);

// keep the unique id in the marker object  
marker.ID = toInt;

// create an item in the associative array
markerList[toInt] = markerArray[i];
这是一份

函数Addmarker(markerary){
对于(i=0;i
另请参见,这与您的问题几乎是重复的

// generate a unique id
var toInt = parseInt(markerArray[i][2]);

// create marker object, add it to the map
var marker = L.marker([markerArray[i][0], markerArray[i][1]], {
  title: markerArray[i][3]}).on('click', function(e) {
     markerURL(e.target.ID); // url = markerList[e.target.ID][3];
  }).addTo(map);

// keep the unique id in the marker object  
marker.ID = toInt;

// create an item in the associative array
markerList[toInt] = markerArray[i];
function Addmarker(markerArray){
    for (i = 0; i < markerArray.length; i++) {
        var toInt = parseInt(markerArray[i][2]);

        this[dynamicname+i] = L.marker(
            [markerArray[i][0], markerArray[i][1]], 
            {title: markerArray[i][3]}
        ).on('click', onMarkerClick(toInt)).addTo(mymap);

}

function onMarkerClick(itemsID){
    return function(ev) {
        window.location.href = 'Items.php?parkid=' + itemsID;
    }
}