2016-04-11 63 views
2

我有一個簡單的代碼,我想隱藏div如果在這裏面其他div.containerbutton用戶點擊的div 這裏是我的代碼切換隱藏不沃金

$('div, button').click(function(){ 
 
    $('.div').toggle('hide'); 
 
})
div{ 
 
    height: 200px; 
 
    width: 200px; 
 
} 
 
.container{ 
 
    background: pink 
 
} 
 
.div{ 
 
    background: blue 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="container"> 
 
    <button>Click</button> 
 
</div> 
 
<div class="div"></div>

工作很好,當我點擊container div但它不工作,當我點擊按鈕,我知道porblem是,你點擊兩次點擊。 但如何解決

+0

你爲什麼不使用$( '格')。隱藏()? –

回答

5

您可以防止冒泡的DOM click事件,並與.stopPropagation()觸發父單擊事件停止:下面

$('div, button').click(function(e){ 
 
    e.stopPropagation(); 
 
    $('.div').toggle('hide'); 
 
})
div{ 
 
    height: 200px; 
 
    width: 200px; 
 
} 
 
.container{ 
 
    background: pink 
 
} 
 
.div{ 
 
    background: blue 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="container"> 
 
    <button>Click</button> 
 
</div> 
 
<div class="div"></div>

0

使用Jquery的問題。

$('.container, button').click(function(){ 
     $('.div').toggle(500); 
     return false; 
    }) 
+2

這是一個錯誤的答案問題不是隱藏元素的方法。 – Gintoki

+0

@約翰你讀過這個問題嗎?這裏是「我想隱藏一個div,如果用戶點擊其他div.container或這個div裏面的按鈕,這裏是我的代碼」 –

+0

是的,我讀了這個問題,只需運行OP代碼片段並運行j08691答案,你就會明白你的答案是錯誤的。 – Gintoki

0

請試試這個

$('div, button').click(function(){ 
    $('.div').toggle('hide'); 
    console.log("hello"); 
    return false; 
})