2016-12-09 477 views
-1

我正在研究一個小小的Ruby on Rails應用程序,我試圖添加一個隱藏/顯示按鈕,它隱藏了某個ID的div。我已按照this後的步驟進行操作,並隱藏了內容(第二個答案)。問題是內容不會永久隱藏。一旦我點擊按鈕,內容消失,然後瀏覽器做一些像自動刷新和內容再次出現。HTML JavaScript隱藏/顯示按鈕

任何人都可以幫助我嗎?這是我的第一個應用程序,我在JavaScript的背景是相當差...

一塊我想隱藏的代碼/顯示如下:

<div id='test'> 
    <div class="col_4 patients-list"> 
    <!-- Patients list --> 
    <h5>Patients en cours: <%= @patients.size %></h5> 
    <div> 
     <% @patients_anomaly.each do |patient| %> 
     <div class="patient-anomaly"><%= link_to_patient patient %></div> 
     <% end %> 
     <% (@patients_to_exit - @patients_anomaly).each do |patient| %> 
     <div class="patient-to-exit"><%= link_to_patient patient %></div> 
     <% end %> 
     <% @patients_normal.each do |patient| %> 
     <div class="patient-normal"><%= link_to_patient patient %></div> 
     <% end %> 
    </div> 
    </div> 
</div> 
<button>Click</button> 

和按鈕的JavaScript是:

<script type="text/javascript"> 
    $("button").click(function() { 
    $("#test").toggle('hide'); 
    }); 
</script> 

在此先感謝您。

+2

請顯示您的代碼。 – Mairaj

+0

需要查看你的代碼。所以請添加它! –

+0

@豹抱歉,現在添加。 –

回答

2

您可以設置type="button"button因爲默認行爲是submitsubmits頁面以頁面在default state所示。

<button type="button">Click</button> 
+0

這工作完美!非常感謝你! :D –

1

取而代之的是<button>Click</button>,添加此

= link_to 'Hide', 'javascript:void(0);', id: 'hideContent' 

然後在Javascript

$('#hideContent').on('click', function(){ 
    $('#test').toggle('hide'); 
}); 

這不會重新加載頁面。

希望有幫助!

+0

我不會''javascript:void(0);''只是''''而在JS'preventDefault()' – Fallenhero

+0

是的,我們也可以'e.preventDefault()',我更喜歡這個。 – RSB

+0

是的,這是有效的,但又是'不顯眼的JavaScript' – Fallenhero

-1
<div id='test'></div> 
<button id="hide_show">Click</button> 
<script> 
    $('#hide_show"').click(function(){ 
    $('#test').toggle(); 
    }); 
</script> 
+2

請使用[編輯]鏈接解釋此代碼如何工作,不要只給代碼,因爲解釋更有可能幫助未來的讀者。 –

+0

雖然此代碼片段可能會解決問題,但它並不能解釋爲什麼或如何回答問題。請[請提供您的代碼解釋](// meta.stackexchange.com/q/114762/269535),因爲這確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 **舉報人/評論者:** [僅限代碼解答,例如downvote,請勿刪除!](// meta.stackoverflow。com/a/260413/2747593) –