Javascript 传单JS、can和x27;t将弹出窗口绑定到第二个标记

Javascript 传单JS、can和x27;t将弹出窗口绑定到第二个标记,javascript,dictionary,geolocation,leaflet,marker,Javascript,Dictionary,Geolocation,Leaflet,Marker,我不能在使用传单JS时将弹出窗口绑定到第二个标记,第一个标记工作得非常好,有什么帮助吗?以下是我的javascript代码: var map = L.map('mapScene', { zoomControl: false, attributionControl: false, }).fitWorld(); var playerIcon = L.icon({ iconUrl: 'img/player

我不能在使用传单JS时将弹出窗口绑定到第二个标记,第一个标记工作得非常好,有什么帮助吗?以下是我的javascript代码:

        var map = L.map('mapScene', {
                zoomControl: false,
        attributionControl: false,
    }).fitWorld();

    var playerIcon = L.icon({
        iconUrl: 'img/playermarker.png',
        shadowUrl: 'img/marker-shadow.png',

        iconSize: [25, 41],
        iconAnchor: [12, 41],
        popupAnchor: [1, -34],
        shadowSize: [41, 41]
    });

        var itemsIcon = L.icon({
        iconUrl: 'img/crate.png',
        shadowUrl: 'img/marker-shadow.png',

        iconSize:     [45, 46], // size of the icon
        shadowSize:   [50, 64], // size of the shadow
        iconAnchor:   [22, 94], // point of the icon which will correspond to marker's location
        shadowAnchor: [10, 117],  // the same for the shadow
            popupAnchor: [1, -34],
    });



    L.tileLayer('http://stamen-tiles-{s}.a.ssl.fastly.net/watercolor/{z}/{x}/{y}.{ext}', {
        minZoom: 14,
        maxZoom: 14,
        attribution: 'Map tiles by <a href="http://stamen.com">Stamen Design</a>, <a href="http://creativecommons.org/licenses/by/3.0">CC BY 3.0</a> &mdash; Map data &copy; <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>',
        subdomains: 'abcd',
        ext: 'png'
    }).addTo(map);


   var playerMarker;

    function onLocationFound(e) {
        var radius = e.accuracy / 2;


       playerMarker = L.marker(e.latlng, {
            icon: playerIcon
        }).addTo(map).bindPopup("Hey i'm you!");

                addMarkers();
    }

        function addMarkers(){
            alert();

            L.marker(playerMarker + 2, {
                    icon: itemsIcon
            }).addTo(map).bindPopup("").on('popupopen', function() {
            alert();
            });
        }


    function onLocationError(e) {
        alert(e.message);
    }

    map.on('locationfound', onLocationFound);
    map.on('locationerror', onLocationError);

    map.locate({
        setView: true,
        maxZoom: 16
    });
var map=L.map('mapsecene'{
动物控制:错误,
属性控制:false,
}).fitWorld();
var playerIcon=L.icon({
iconUrl:'img/playermarker.png',
shadowUrl:'img/marker shadow.png',
iconSize:[25,41],
iconAnchor:[12,41],
popupAnchor:[1,-34],
阴影大小:[41,41]
});
var itemsIcon=L.icon({
iconUrl:'img/crate.png',
shadowUrl:'img/marker shadow.png',
图标大小:[45,46],//图标的大小
阴影大小:[50,64],//阴影的大小
iconAnchor:[22,94],//对应于标记位置的图标点
shadowAnchor:[10117],//对阴影也一样
popupAnchor:[1,-34],
});
L.tileLayer('http://stamen-tiles-{s} .a.ssl.fastly.net/watercolor/{z}/{x}/{y}.{ext}'{
minZoom:14,
maxZoom:14,
属性:“地图平铺依据,&mdash;地图数据&mdash;”,
子域:“abcd”,
分机:png
}).addTo(地图);
var playerMarker;
函数onLocationFound(e){
var半径=e.精度/2;
playerMarker=L.标记(e.板条{
图标:playerIcon
}).addTo(map).bindpoop(“嘿,我是你!”);
添加标记();
}
函数addMarkers(){
警惕();
L.标记器(玩家标记器+2{
图标:itemsIcon
}).addTo(map).bindpoppup(“”).on('popupopen',function(){
警惕();
});
}
函数onLocationError(e){
警报(e.message);
}
地图上('locationfound',onLocationFound);
map.on('locationerror',onLocationError);
定位({
setView:对,
最大缩放:16
});

通过函数“addMarkers()”添加的第二个标记显示得非常好,但是.bindpopup根本不起作用。您可以单击标记,但没有显示任何内容,警报也没有显示。

谢谢@ghybs的帮助。这是一本书。 我不知道你怎么会想到它会与
playerMarker+2
一起作为
latLng
工作,但似乎这是个错误。标记和整数之间的加法无效

[编辑]下面是一段有趣的代码:

function onLocationFound(e) {
    var radius = e.accuracy / 2;
    playerMarker = L.marker(e.latlng).addTo(map).bindPopup("Hey i'm the first marker ");

    addMarkers();
}

function addMarkers() {
  //alert();
  var ll = playerMarker.getLatLng();
  var ll2 = L.latLng(ll.lat+12, ll.lng+12);
  var mm = L.marker(ll2).addTo(map);
  mm.bindPopup("Hey i'm the second marker");
}

谢谢@ghybs的提琴。这是一本书。 我不知道你怎么会想到它会与
playerMarker+2
一起作为
latLng
工作,但似乎这是个错误。标记和整数之间的加法无效

[编辑]下面是一段有趣的代码:

function onLocationFound(e) {
    var radius = e.accuracy / 2;
    playerMarker = L.marker(e.latlng).addTo(map).bindPopup("Hey i'm the first marker ");

    addMarkers();
}

function addMarkers() {
  //alert();
  var ll = playerMarker.getLatLng();
  var ll2 = L.latLng(ll.lat+12, ll.lng+12);
  var mm = L.marker(ll2).addTo(map);
  mm.bindPopup("Hey i'm the second marker");
}

L.marker(playerMarker+2,
对我来说很奇怪。你能解释一下你想用你的标记做什么吗?为什么你需要在
locationfound
事件中添加两个标记?@JulienV只是简单地在玩家的标记附近添加标记,尽管这与问题无关。你的浏览器控制台怎么说?比如@JulienV暗示,您的代码可能会抛出错误。@ghybs刚刚检查过,我的代码没有抛出任何错误。除了缺少的图像外,请参见
TypeError:latlng为null
,因为
playerMarker+2
L标记(playerMarker+2,
对我来说很奇怪。你能解释一下你想用你的标记做什么吗?为什么你需要在
locationfound
事件中添加两个标记?@JulienV只是简单地在玩家的标记附近添加标记,尽管这与问题无关。你的浏览器控制台怎么说?比如@JulienV暗示,您的代码可能会抛出错误。@ghybs刚刚检查过,我的代码没有抛出任何错误。除了缺少的图像外,请参阅
TypeError:latlng为null
,因为
playerMarker+2