点击外面并隐藏Div

当你点击文档时,我正在尝试做简单的隐藏div。 我似乎无法让它发挥作用。 我基本上希望在单击按钮时切换到div。 然后如果你点击其他任何地方(不在div上),它就会切换掉。

这是脚本:

$(document).ready(function(){ $(".slidingDiv").hide(); $(".show_hide").show(); $('.show_hide').click(function(){ $('.slidingDiv').slideToggle(); $(document).one(function(){ $('.show_hide').show(); }); }); }); 

这是CSS(这是正确的CSS现在正确的JQuery下面!)

 .slidingDiv { background-color: #FFF; border:3px solid #000; border-radius:0 0 15px 15px; float:right; height:175px; padding:20px; position:relative; top:-18px; width:300px; z-index:100; display:none; } .show_hide { } 

和HTML:

 
Hello

任何帮助都是极好的。

这是我现在正在运行的整个事情,包括脚本:

    $(function(){ //jQuery(function($){ $('.show_hide').click(function(e){ // <----you missed the '.' here in your selector. e.stopPropagation(); $('.slidingDiv').slideToggle(); }); $('.slidingDiv').click(function(e){ e.stopPropagation(); }); $(document).click(function(){ $('.slidingDiv').slideUp(); }); });  

在您的情况下,您需要使用.stopPropagation()停止事件以鼓泡到父.stopPropagation()

 $('.show_hide').click(function(e){ // <----you missed the '.' here in your selector. e.stopPropagation(); $('.slidingDiv').slideToggle(); }); $('.slidingDiv').click(function(e){ e.stopPropagation(); }); $(document).click(function(){ $('.slidingDiv').slideUp(); }); 

检查演示内容

来自docs

 event.stopPropagation() 

防止事件冒泡DOM树,防止任何父处理程序被通知事件。

仅供参考

我不知道这是否需要告诉你,但你应该遵循这样的方式:

   

OP,

您需要做的是将click事件绑定到要控制的元素,显示

,并将click事件绑定到document ,以处理隐藏。 话虽如此,在show函数中使用e.stopPropagation()非常重要,因此您的事件不会冒泡document ,从而隐藏您的

;

小提琴: http : //jsfiddle.net/qYfWv/

JS

 $(document).ready(function () { $('button').click(function (e) { $('div').fadeIn(); e.stopPropagation(); }); $(document).click(function (e) { $('div').fadeOut(); }); }); 

Jai的代码应该可行。 如果代码在小提琴中工作而不在您的网站上,则应该意味着您没有正确包含jQuery。 您确定要在代码中包含jQuery库吗?

您可以使用Google的jQuery CDN等CDN。 只需将其添加到您的HTML代码中:

 $('.show_hide').click(function(){ 

你忘了show_hide是一个class级

绑定到’文档’绑定到dom body标签。

$('body').on('click', function(e){/* Magic here */})