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