2014-05-22 133 views
0

我有一個包含谷歌地圖的div,當頁面加載時我想隱藏div直到我點擊鏈接來查看。我的問題是div加載時總是顯示。我不能爲我的生活找出爲什麼它不會顯示爲隱藏,直到點擊。隱藏/顯示DIV從一個href

<a href="#" class="btn blue btn-block" onclick="toggle('showmap')">View on Map <i class="fa fa-map-marker"></i></a> 

這是我的div持有地圖(並不包括因爲沒有必要)

<div id="showmap"> 
</div> 

的JavaScript

<script language="JavaScript"> 
    function toggle(id) { 
     var state = document.getElementById(id).style.display; 
      if (state == 'block') { 
       document.getElementById(id).style.display = 'none'; 
      } else { 
       document.getElementById(id).style.display = 'block'; 
     } 
    } 
</script> 

我已經換了塊&沒有和周圍仍然沒有快樂,

這怎麼可能?

我確實通過使用提交按鈕工作,但我有更多的代碼,使用提交按鈕來更新表單到我的數據庫,每次我點擊顯示/隱藏div上傳數據,所以我試圖這種方式除非你可以在頁面上多次提交?

+0

使用CSS最初隱藏它。如果您等待JS處理它,則可能會在隱藏之前「閃爍」。 –

+0

您已將此問題標記爲「jQuery」,但您的代碼是原生JS。你在尋找一個jQ實現還是你錯了標籤? –

回答

2

您可以隱藏與CSS的元素初始頁面加載:

#showmap { 
    display: none; 
} 
+0

感謝所有回覆,當頁面加載時,我設法隱藏div,但是當我點擊按鈕顯示div時,它會閃爍通過,因爲我看到小圖標移動但div不打開。我已經通過回覆嘗試了每個選項 – 539

0

股利將有風格的顯示設置默認阻止,因此會一直顯示正在加載頁面時,因爲它是現在。最好的顯示屬性設置爲none

<div id="showmap" style="display:none;"></div> 

或者你可以將其設置在了JavaScript的網頁已被加載

window.onload(function() { 
    document.getElementById("showmap").style.display = "none"; 
} 

上但是,CSS做,就跑到這裏的方式。

0

最好使用jQuery的,但你的代碼是不工作,因爲你需要在這個風格

<script language="JavaScript"> 
    $(document).ready(function(){ 
     toggle('map'); 
    }) 
    function toggle(id) { 
     var state = document.getElementById(id).style.display; 
     if (state == 'block') { 
      document.getElementById(id).style.display = 'none'; 
     } else { 
      document.getElementById(id).style.display = 'block'; 
    } 
    return false; 
} 

</script> 
<style> 
#map{display:none} 
</style> 

<script> 
$(document).ready(function(){ 
    $('#map').toggle(); 
}) 
</script> 

但是,最好的方法是使用CSS的隱藏辦(初始) 注意在您的使用方式中返回false false