点击外面并隐藏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 */})