Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 点击元素,元素在堆叠错误后?_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 点击元素,元素在堆叠错误后?

Javascript 点击元素,元素在堆叠错误后?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个类似“lightbox”的函数,它只显示如下两个div: 绿色(一旦工作就不会被涂上颜色)是要单击关闭登录框的区域 带代码的JSFIDLE: 当你点击登录框时,它会消失,因为它认为它点击了绿色框。有什么建议吗?您可以添加此代码 .find('#centeredBox').click(function(e){ e.preventDefault(); e.stopPropagation(); return false; }); 因此,docume

我有一个类似“lightbox”的函数,它只显示如下两个div:

绿色(一旦工作就不会被涂上颜色)是要单击关闭登录框的区域

带代码的JSFIDLE:


当你点击登录框时,它会消失,因为它认为它点击了绿色框。有什么建议吗?

您可以添加此代码

.find('#centeredBox').click(function(e){
        e.preventDefault();
        e.stopPropagation();
return false;
    });
因此,document.ready函数变为

$(document).ready(function(){
    $("#loginOffBox").click(function(){
        $('#loginOffBox').hide();
          $('#centeredBox').hide();
    }).find('#centeredBox').click(function(e){
        e.preventDefault();
        e.stopPropagation();
return false;
    });
    // other js
});
这将在单击居中div时停止运行事件


你也可以把中间的div从彩色div中去掉。那么你就不会有事件泡泡了

您可以添加此代码

.find('#centeredBox').click(function(e){
        e.preventDefault();
        e.stopPropagation();
return false;
    });
因此,document.ready函数变为

$(document).ready(function(){
    $("#loginOffBox").click(function(){
        $('#loginOffBox').hide();
          $('#centeredBox').hide();
    }).find('#centeredBox').click(function(e){
        e.preventDefault();
        e.stopPropagation();
return false;
    });
    // other js
});
这将在单击居中div时停止运行事件


你也可以把中间的div从彩色div中去掉。那么你就不会有事件泡泡了

您希望修复两个div的z索引。后台div的z索引应该比弹出div小,并且两者都应该有一个相对较高的值


尝试将loginOffBox的z索引设置为1000,将centeredBox的z索引设置为1100,这样应该可以正常工作。

您希望修复两个div的z索引。后台div的z索引应该比弹出div小,并且两者都应该有一个相对较高的值


对于loginOffBox,尝试z索引为1000,对于centeredBox,尝试z索引为1100,应该可以正常工作。

您需要。stopPropagation方法


这里是更新后的jsfidle:

您需要的.stopPropagation方法


这里更新的jsfidle:

可能重复的更改
z-index:-1#centeredBox
的code>设置为1或更多。@loler my bad,几分钟前更新了JSFIDLE,但这并不能阻止issue@zomboble当前位置小提琴仍然没有为我显示任何东西。这个是:。然而,问题的解决方案在我之前评论中的链接中。@Flater这可能是问题的原因,但还有第二个原因,我起初没有注意到
#centeredBox
位于div
#loginOffBox
的内部,这就是为什么需要使用
。stopPropagation
的原因。可能重复的更改
z索引:-1#centeredBox
的code>设置为1或更多。@loler my bad,几分钟前更新了JSFIDLE,但这并不能阻止issue@zomboble当前位置小提琴仍然没有为我显示任何东西。这个是:。然而,问题的解决方案在我之前评论中的链接中。@Flater这可能是问题的原因,但还有第二个原因,我起初没有注意到
#centeredBox
位于div
#loginOffBox
的内部,这就是为什么需要
。stopPropagation
的原因。可以调用
e.stopPropagation()
返回false但两者都是多余的。我在
e.stopproperation()中更改了拼写错误在帖子中添加到
e.stopPropagation()在@FelixKling的回答之后的某个时间。或者调用
e.stopPropegation()
返回false但两者都是多余的。我在
e.stopproperation()中更改了拼写错误在帖子中添加到
e.stopPropagation()
在@FelixKling的回答之后的某个时候。是的,差点忘了添加,可能没有必要将背景div作为中心div的父级。如果在css中正确定位,它们都可以是兄弟。然后就不需要特殊的事件捕获了。是的,几乎忘了添加,可能不需要将背景div作为父级添加到中心div中。如果在css中正确定位,它们都可以是兄弟。这样就不需要特殊的事件捕获。