Javascript Jquery.Click是否应用于所有子div?
HTML: JQuery:Javascript Jquery.Click是否应用于所有子div?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,HTML: JQuery: #lowerLayer { position: fixed; top: 0px; left: 0px; right: 0px; bottom: 0px; width: 100%; height: 100%; background-color: Green; cursor: help; } #positionLayer { position: relative; margin-top
#lowerLayer
{
position: fixed;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
width: 100%;
height: 100%;
background-color: Green;
cursor: help;
}
#positionLayer
{
position: relative;
margin-top: 80px;
width: 100%;
background-color: Red;
}
#imageLayer
{
position: relative;
width: 450px;
height: 400px;
margin: auto;
background-color: Blue;
background-image: url('../Images/Large-image-holder.png');
}
#imageHolder
{
position: absolute;
left: 25px;
top: 25px;
width: 400px;
height: 300px;
line-height: 300px;
background-position: center;
background-repeat: no-repeat;
background-color: Aqua;
}
编辑:
我的问题是,点击事件似乎适用于所有子div,我只希望它适用于lowerLayer离开事件委派并冒泡,因为我认为它与这里的实际问题无关
jQuery hide方法将display:none应用于元素的样式。如果未显示元素,则其子体也不会显示。类似地,fadeTo降低了不透明度,这也会对元素的后代产生影响。将事件委派和冒泡放在一边,因为我认为这与这里的实际问题无关 jQuery hide方法将display:none应用于元素的样式。如果未显示元素,则其子体也不会显示。同样,fadeTo会降低不透明度,这也会对元素的后代产生影响。我认为这将解决您的问题:
$(document).ready(function() {
$("#lowerLayer").click(function() {
$(this).fadeTo("fast", 0, function() {
$(this).hide(0);
});
});
});
});
我认为这将解决您的问题:
$(document).ready(function() {
$("#lowerLayer").click(function() {
$(this).fadeTo("fast", 0, function() {
$(this).hide(0);
});
});
});
});
我遇到的问题是,单击事件似乎应用于所有子div,我只希望它应用于lowerLayerPetoj,而不是应用于所有子div-当单击事件发生时,它将在DOM中冒泡,触发对所有祖先的单击,除非它在子级到父级之间冒泡,它们不会滴落下来——我想你会发现这个事件只会触发一次。向自己发出警告以证明这一点。该事件只会触发一次,但如果我只单击一个子分区LowerLayer,我不希望触发该事件。问题是,单击事件似乎应用于所有子分区,我只希望它应用于lowerLayerPetoj,它并没有应用于所有的子div-当一个click事件发生时,它会在DOM中冒泡,触发对所有祖先的单击,除非它被阻止。事件从一个子级冒泡到父级,它们不会滴流下来-我想你会发现事件只触发一次。放一个警报来向自己证明这一点。该事件只会触发一次,但我不希望它在我单击一个子div时触发,只在较低的layer+1,但我有点惊讶jquery没有一个更为jquery的描述方式!bubbleSeems不太适合jquery,但是当您想要区分发起事件e.target的元素和由于bubble this捕获事件的元素时,e.target是一个可以查看的地方。+1但是我有点惊讶jquery没有更适合jquery的描述方式!BubbleSeem不太适合jQuerySih,但是当您想要区分发起事件e.target的元素和由于bubble而捕获事件的元素时,e.target是一个可以查看的地方。
$(document).ready(function() {
$("#lowerLayer").click(function(e) {
// Return if it's a child that's clicked:
if (e.target !== this) {return;}
// Otherwise continue:
$(this).fadeTo("fast", 0, function() {
$(this).hide(0);
});
});
});
});