javascript - Leaflet OnClick 数据不是动态的

标签 javascript onclick leaflet

当单击 map 传单上的标记时,我遇到问题,模式仅显示最后的数据,而不是动态显示。

//Array
        var koordinat = [
            {id: 1, nama: 'Unesa', lat: -7.313047, lang: 112.727151},
            {id: 2, nama: 'Coffe Warsalam', lat: -7.310355, lang: 112.732151},
            {id: 3, nama: 'Kejaksaan', lat: -7.313824, lang: 112.733235},
        ];

        //var sikat = [];
        for(var i = 0; i < koordinat.length; i++) {
            sikat = new L.Marker(new L.latLng(parseFloat([koordinat[i].lat]), parseFloat([koordinat[i].lang]))).addTo(mymap);
            sikat.bindPopup(koordinat[i].nama).openPopup();

            var namamu= koordinat[i].nama;


            sikat.on('click', function() {
                //$("#nama").html(koordinat[i].nama);
                $('#Modal').modal('show').on('shown.bs.modal', function() {
                    var modal   = $(this)

                    //Reset Isi Form
                    $('#info').trigger("reset");

                    modal.find('#nama').attr("value",namamu);
                })
                //$("#Modal").modal("show");
            });
        }

我希望在当前单击的标记上显示数据。谢谢大家...

最佳答案

很可能是一个经典的 JavaScript 作用域问题,即 var 被提升,而开发人员并没有预料到它。

替换var namamu= koordinat[i].nama;中的var

通过const:const namamu= koordinat[i].nama;

以便您的 namamu 变量绑定(bind)到内部 for block 作用域。

关于javascript - Leaflet OnClick 数据不是动态的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60657846/

相关文章:

scala - 在调整大小之前,传单 map 不会正确显示

传单 - 如何在拖放时匹配标记和折线

dictionary - 传单中框内的多个标记选择

javascript - jQuery UI - 使 div 不可调整大小

Android:使用 TextView 和 Button 在 LinearLayout 上单击

javascript - 服务器发送事件有哪些好的用例

javascript - Selenium WebDriver - 通过 Javascript 或 onclick 查找元素

java - 如何在 Android Java 中单击按钮时从 MainActivity 以外的类调用函数

javascript - 如何在 IIFE 表达式中调用函数

javascript - mpld3 自定义插件中的选择——制作 slider