我有一个登录窗口,我试图通过点击div
(以及切换淡入和淡出的登录按钮)的任何地方淡出。
jQuery(document).ready(function ($) {
$('.login').click(function () {
$('#modal_login').fadeToggle('fast');
});
$('body').click(function (e) {
if (!$(e.target).is('.login, #modal_login *')) {
$('#modal_login').fadeOut('fast');
}
});
});
这一切看起来都非常简单,但问题在于#modal_login
和它的孩子。如果您点击#modal_login
div
中的任意位置,它就会淡出。我也尝试了#modal_login > *
而没有运气。
使用“.login
”类按钮可以很好地运行代码。
所以我的问题是,我是否正在使用正确的语法来完成我想要完成的任务(点击或点击其中任何一个孩子时没有div淡出)?看起来合法吗?
答案 0 :(得分:2)
解决这个问题的一种方法是防止模态中的点击超出模态。像这样:
$("#modal_login").click(function(e){
e.stopPropagation();
});
现在在模态中点击不会冒泡到执行fadeOut
。