传单OnClick数据不是动态的 [英] Leaflet OnClick data not dynamically

查看:39
本文介绍了传单OnClick数据不是动态的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我在地图传单和模式上的单击标记仅显示最后数据而不动态显示时,我遇到了问题.

I have e problem when click marker on my map leaflet and modal show only last data, not dynamically.

//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");
            });
        }

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

I want data show on current marker clicked. Thanks guys...

推荐答案

很可能是经典的JavaScript范围问题,其中悬挂了 var ,而开发人员并不期望.

Much probably a classic JavaScript scope issue with var being hoisted whereas the developer does not expect it.

var namamu = koordinat [i] .nama;

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

使您的 namamu 变量绑定到内部的 for 块作用域.

So that your namamu variable become bound to the inner for block scope.

这篇关于传单OnClick数据不是动态的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆