2013-11-02 93 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