将弹出窗口绑定到Leaflet.js圈:NOT_FOUND_ERR:DOM异常8

时间:2014-03-17 15:42:57

标签: javascript jquery leaflet

我正在使用传单并尝试在我创建的圆圈上创建一个弹出窗口。我使用以下代码

    var jsonString = '{"location":"edinburgh","topNouns":["track","love"],"eventWords":{"shot":1},"numberOfTweets":177.0,"numberOfTweetsContainEventWord":1.0,"percentageOfEventTweets":0.5649717514124294,"lat":55.953252,"lon":-3.188267}';

    var json = JSON.parse(jsonString);     

    var text = json.lat;
    alert(text);
            var circleColor = 'red';
            var circle = L.circle([55.953252, -3.188267], 9000, {
                color: circleColor,
                fillColor: circleColor,
                fillOpacity: 0.5
            })
                .bindPopup(text)
                .addTo(map); 

代码读入JSON字符串,创建一个圆圈,然后尝试将弹出窗口绑定到圆圈。

但是没有弹出窗口,我收到以下错误

Uncaught Error: NOT_FOUND_ERR: DOM Exception 8 

我相信当我将text变量传递给.bindPopup方法时会发生这种情况。当我在.bindPopup方法中插入一个常量文本值时,弹出窗口会正确显示,但是我希望它能从JSON中获取文本。

使用alert方法我能够看到正确地从JSON中检索变量文本。

有谁知道为什么会出现这个错误?

链接到JSFiddle:http://jsfiddle.net/8HLJn/1/

努力让地图显示在JSFiddle中。

1 个答案:

答案 0 :(得分:0)

管理以解决问题。我需要将text变量转换为字符串,如下所示

.bindPopup(String(text))

不完全确定警报方法为何正确显示文本,而我必须将变量强制转换为字符串,以便在传单弹出窗口中显示。