Jquery 单击外部div运行脚本
我有这个简单的脚本,我想知道如果用户在.side之外单击,如何隐藏.side 脚本在这里Jquery 单击外部div运行脚本,jquery,events,selector,Jquery,Events,Selector,我有这个简单的脚本,我想知道如果用户在.side之外单击,如何隐藏.side 脚本在这里 $(document).ready(function() { $(".side").hide(); $("a").click(function () { $(this).next().slideToggle("fast"); }); $(document).bind('keydown', function(e) { if (e
$(document).ready(function() {
$(".side").hide();
$("a").click(function () {
$(this).next().slideToggle("fast");
});
$(document).bind('keydown', function(e) {
if (e.which == 27) {
$("a").next().slideUp();
}
});
});
你可以在这里找到完整的代码
您可以添加如下内容:
您可以使用
$(event.target).is('.side')
检查当前单击的目标。如果为false,则表示单击不在您的div中
请解释一下。
side.has(e.target).length==0
的意义是什么?它检查单击的目标是否是容器的子对象。如果是,它将返回大于0的值,并且不运行该函数。
$(document).mouseup(function (e)
{
var side = $(".side");
if (!side.is(e.target) // if the target of the click isn't side...
&& side.has(e.target).length === 0)
{
side.slideUp("fast");
}
});
$(document).ready(function () {
$(".side").hide();
$("a").click(function (e) {
$(this).next().slideToggle("fast");
e.stopImmediatePropagation();
});
$(document).bind('click', function (event) {
if (!$(event.target).is('.side')) {
$("a").next().slideUp();
}
});
});