2014-02-17 54 views
2

我想隱藏一個div,當它被加載並顯示它時單擊一個按鈕,但我得到的是,該div只顯示一段時間,並再次隱藏。我是否正確地使用CSS類或者有什麼特別的關於display:none;無法刪除隱藏的JavaScript類

HTML


<div id="message"> 
    <div class="item-user hid"> 
     <a href="">something</a> 
    </div> 

    <a class="btn-user" href="">button</a> 
</div> 


CSS


.hid { 
    display: none; 
} 


JS


<script> 
    //jquery is loaded already 

    $(document).ready(function(){ 

     $('#message .btn-user').click(function(){ 
      $('#message .item-user').removeClass('hid'); 
     }); 

    }); 
</script> 
+1

你能提供一個jsFiddle嗎? – RobinvdA

+0

問題就像Felix已經抓住了一樣,他的回答很好。 @RobinvdA – TonyTony

回答

6

您需要使用e.preventDefault()以防止你的錨的默認操作:

$('#message .btn-user').click(function(e){ 
    e.preventDefault(); 
    $('#message .item-user').removeClass('hid'); 
}); 

Fiddle Demo

+0

它工作,很酷。我想提供一些我的代碼的背景。我使用的是Bootstrap,而按鈕可以用'a'或'button'標籤來定義,這就是爲什麼我遇到了這個問題。你能解釋一下爲什麼當我點擊它時,它首先顯示一秒鐘然後消失? – TonyTony

+1

由於按鈕的href爲空,頁面將重新加載。所以當你點擊按鈕時,首先刪除類$('#message .item-user')。removeClass('hid');'然後重新加載頁面。 'e.preventDefault();'防止元素的默認行爲 – RobinvdA

2

使用本http://jsfiddle.net/3Cp75/

<div id="message"> 
    <div class="item-user hid"> 
     <a href="">something</a> 
    </div> 

    <a class="btn-user" href="">button</a> 
</div> 

爲什麼我們使用的preventDefault

**Prevent a submit button from submitting a form** 

否則,如果你想二硝基甲苯刪除它的href

鏈接http://jsfiddle.net/3Cp75/1/

+0

我想你正在展示費利克斯的演示 –

+0

@SajadLfc我havenot複製先生.....我剛剛給了答案 –

+0

這不是一個好的答案,因爲你不'解釋爲什麼OP應該這樣做。 – Andy

2

將您的錨標記「href」attr更新爲「javascript:void(0);」。這將阻止默認操作並讓它用javacript管理操作。

或者你可以去與

event.preventdefault()

這也同樣做,但你會在處理JavaScript函數的動作。