如何将我的#lightbox
从附加到正文的处理程序中排除?
$('body :not(#lightbox)').click(function() {
$('#lightbox').hide();
});
lightbox居中。当用户从框中向左或向右点击时,它应该关闭。当单击#lightbox
或它的任何后代时,不应该发生这种情况。
一个选项是阻止lightbox
元素的click事件传播,但它可能不是安全的选项,因为它可以破坏其他全局处理程序。
另一个是查看事件目标是否在lightbox
元素内部
$('body').click(function (e) {
if (!$(e.target).closest('#lightbox').length) {
$('#lightbox').hide();
}
});
您可以通过放置以下脚本从灯箱中删除处理程序
$(document).ready(function(){
$('body :not(#lightbox)').unbind('click');
});
但请注意,在此脚本之后,您的点击事件处理程序从未触发。你也可以在你的函数中返回false,这将不会处理该函数的后续脚本。