Javascript onClick双击

时间:2013-10-31 11:35:45

标签: javascript css google-maps

我正在为Google Earth开发此解决方案。我有一个标题,其中包含使用CSS创建的按钮,单击该按钮会触发加载KML。我遇到的问题是,如果用户再次单击该按钮,则会再次加载相同的KML。我需要防止这种情况发生。我一直在考虑点击它会使按钮变灰,直到选择了删除KML功能,或者如果用户再次单击该按钮,它将删除它。我需要它是按钮而不是复选标记。

function createNetworkLink(newlink) {
var networkLink = ge.createNetworkLink("");
var link = ge.createLink("");
link.setHref(newlink);
networkLink.setLink(link);
ge.getFeatures().appendChild(networkLink);

function LoadKML() {
var newlink = "http://www.something.com/test.kml";
createNetworkLink(newlink);

<div id='topmenu'>
<ul style="width: auto">
<li class='active'><a href="www.something.com"><span>Home</span></a></li>
<li><a title="KML 1" href='#'onClick=LoadKML();><span>KML 1</span></a></li>
<li class='last' style="width: auto"><a href='#'onClick=killKML();><span>Remove KMLs</spam></a></li>

我的功能是在没有问题的情况下杀死KML。


function killKML(source) {
var features = ge.features().getChildNodes();
for (var i=0; i < features.getLength(); i++)
{
var feature = features.item(i);
if (! source) {
ge.getFeatures().removeChild(feature);
}
}
}

1 个答案:

答案 0 :(得分:1)

代码中没有使用jQuery ......所以我建议使用简单的基于标志的解决方案

var kmlLoaded = false;

function LoadKML() {
    if (kmlLoaded) {
        return
    }
    var newlink = "http://www.something.com/test.kml";
    createNetworkLink(newlink);
    kmlLoaded=true;
}

function killKML(source) {
    kmlLoaded=false;
    var features = ge.features().getChildNodes();
    for (var i = 0; i < features.getLength(); i++) {
        var feature = features.item(i);
        if (!source) {
            ge.getFeatures().removeChild(feature);
        }
    }
}