2016-04-11 62 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; 
})