如何通过单击除该元素以外的任何位置来隐藏元素
How can i hide an element by clicking anywhere except on that element
我正在使用jQuery的切换方法在单击另一个页面元素时隐藏/显示页面元素。
jQuery('a#mobile-search-icon).click(function(){
jQuery(‘#searchBox’).toggle('slow');
});
但除此之外,如果用户单击文档上除该元素之外的任何位置,我希望该元素淡出。 为此使用哪行代码?
我的伪代码会读成这样,...
$(‘anywhere except #searchBox’).click(function(){
$(‘#searchBox’).fadeOut();
})
我知道有一个jQuery not选择器,但我更喜欢使用其他东西。 Not 选择器会占用太多处理器资源。
检查整个文档是否有点击。如果点击的目标不是您的元素,请执行您必须执行的操作。
$(document.body).click(function(e) {
if ($(e.target).attr('id') != 'searchBox') {
$('#searchBox').fadeOut();
}
})
呼应约翰·史密斯的完整性:
$(document.body).not("#searchBox").click(function() {
$('#searchBox').fadeOut();
})
使用"not",例如:
$(document.body).not("#searchBox").on("click", someFunction...
你可以使用
$('body').on('click',function()
{
$('.notwanttotriggerhideclass').fadeOut();//hide your element
}) ;
然后在您不想隐藏的选择器上返回 false:
$('.notwanttotriggerhideclass').on('click',function()
{
return false;
});
或检测正文上的类 点击 功能并隐藏您的类:
$('body').on('click',function()
{
if ($(e.target).attr('class') != 'notwanttotriggerhideclass'))
{
$('.notwanttotriggerhideclass').fadeOut();//hide your element
}
}) ;
假设您在取消选择输入标签时使用此行为,则您正在寻找"blur"事件:
$( "#searchBox" ).blur(function() {
$(this).fadeOut();
});
例如,当用户使用输入标签并按 TAB 时,也会触发此操作,这非常酷。
编辑:假设您不使用输入,执行此操作的不错方法是:
$('body').not("#searchBox").click(function() { $("#searchBox").fadeOut(); });
相关文章:
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 是否有任何可能的原因使我应该指定类型=“”;按钮“;用于我的按钮元素
- 任何一种简单的方法都可以将带有onload的元素作为目标
- 如何查明鼠标按下事件是否发生在滚动条上或元素中的其他任何位置
- 从dom中删除任何元素后,Touchmove事件停止触发
- Javascript集:任何覆盖元素之间比较的方法
- 制作 JavaScript 代码适用于任何元素
- jQuery:append()不是't在选择器中插入任何元素
- 为什么在ASP.NET Ajax更新面板中执行任何操作后javascript元素都停止工作
- 比较数组中的连续元素不会返回任何结果(javascript)
- 如何在呈现页面后使用 Java 脚本检测 dom 元素值的值是否有任何变化(例如,任何输入或复选框值更改)
- 如何在不使用任何 html 输入/搜索元素的情况下读取本地客户端文本文件
- 与任何元素的 .innerHTML 属性匹配的 JavaScript 正则表达式
- 没有任何 DOM 元素的 Aura 组件
- 当“不相关”的 html 选择元素没有选择任何选项时,如何退出 jQuery 事件
- 当我单击chrome的输入类型=搜索元素上的X时,是否触发了任何事件
- IOS自动化:有没有办法;刷新'元素树(或者Instruments'认为可以访问和不能访问的任何内容)
- 如果我只想从数组中打印任何一个元素.任何数组.那么代码会是什么
- 是否可以使用 Javascript 库测试 SVG 元素?任何其他选项