2013-11-02 68 views
0

我有一个代码在下面的另一篇文章中回答了我。不过,我遇到了一个我无法轻易解决的新问题。我添加了额外的LoadKML函数,例如函数LoadKML1(),函数LoadKML2()。现在的问题是我需要点击killKML按钮来清除LoadKML1,然后才能点击LoadKML2。我想点击LoadKML1加载KML,如果再次点击LoadKML1运行killKML代码。基本上是一个开关按钮。加载/卸载onClick Javascript

任何帮助表示赞赏。

var kmlLoaded = false; 

function LoadKML() { 
    alert('Kill KML'); 
     if (kmlLoaded) { 
     return 
      killKML(); 
     }else{ 
      alert('Creating KML'); 
      var nwlink = "http://kml-samples.googlecode.com/svn/trunk/kml/NetworkLink/placemark.kml" 
      createNetworkLink(nwlink); 
      kmlLoaded=true; 
     } 
} 

function killKML(source) { 
    ge.getGlobe().getFeatures().removeChild(networkLink); 

回答

0

你可以改变你的代码,并在k​​mlLoaded调用killKML()检查是这样的:

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

我提醒添加,这是我的结果。当我第一次点击LoadKML时,我会收到警报KML,这是正常的,然后它会转到加载KML。当我再次点击它时,它只是说杀死KML,但它并不杀死KML。 – JeremyA1

+0

正常情况下,您需要在if语句中删除'return'。 – pascal

+0

这个工作,我应该意识到这一点。我不太熟悉Javascript,我刚刚在一个月前开始学习它。 – JeremyA1