JS/传单。事件 (.on ('click', onClick)) 不会触发

时间:2021-06-15 08:39:54

标签: javascript php html leaflet

我开始使用 Leaflet 库。我试图在点击标记时添加一个事件。

我有一个循环,可以根据数据库中的数据量在地图上创建标记。原来是这个文件:

array(6) {
  [0]=>
  array(13) {
    [0]=>
    string(9) "37.162047"
    [1]=>
    string(10) "140.328209"
    [2]=>
    string(321) "Japan word word word word word word word word word word word word word word word"
    [3]=>
    string(12) "Japan"
    [4]=>
    NULL
    [5]=>
    string(10) "Tokyo"
    [6]=>
    string(10) "Ocean"
    [7]=>
    string(10) "12.04.2013"
    [8]=>
    string(1) "5"
    [9]=>
    string(1) "8"
    [10]=>
    string(3) "345"
    [11]=>
    string(6) "676796"
    [12]=>
    string(7) "6799654"
  }
  [1]=>
  array(13) {
    [0]=>
    string(9) "49.775444"
    [1]=>
    string(9) "10.757696"
    [2]=>
    string(325) "Germany  word word word word word word word word word word word word word word word"
    [3]=>
    string(16) "Germany"
    [4]=>
    NULL
    [5]=>
    string(12) "Berlin"
    [6]=>
    string(10) "Rock"
    [7]=>
    string(10) "21.03.2010"
    [8]=>
    string(1) "6"
    [9]=>
    string(1) "4"
    [10]=>
    string(5) "45736"
    [11]=>
    string(7) "7699870"
    [12]=>
    string(7) "4563463"
  }
..............
}

使用此代码获取此文件:

$data_encode = (json_encode($data));

使用此解析:

var map_data = JSON.parse('<? echo $data_encode; ?>');

标记JS代码:

function description_event(e) {
    dscr.innerHTML = map_data[i][2];
}
for (var i = 0; i < map_data.length; i++) {
    marker = new L.marker([map_data[i][0], map_data[i][1]])
    .bindPopup("<b>" + map_data[i][8] + "</b>" + "<br>" + map_data[i][7] + "<br>" + map_data[i][3])
    .on('click', description_event)
    .addTo(map);
   }
}

我需要通过单击标记从数据库发送数据。因此,例如,“日本”被写在标记上,并且描述“日本字词...”被发送到块,到具有 id =“dscr”的 div。但我做不到。 仅当 map_data [0] [2] 时才发送点击;并且只有“日本字词...”和map_data [i] [2];不起作用。也就是说,迭代不起作用。 各种方法我都试过了。

同样的问题

.on('click', function() { dscr.innerHTML = map_data[0][2]; })

0 个答案:

没有答案
相关问题