Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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 Jquery.Click是否应用于所有子div?_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript Jquery.Click是否应用于所有子div?

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

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: 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);
            });

        });
    });
});