Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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单击事件句柄类元素和内部元素_Javascript_Jquery_Html - Fatal编程技术网

Javascript jQuery单击事件句柄类元素和内部元素

Javascript jQuery单击事件句柄类元素和内部元素,javascript,jquery,html,Javascript,Jquery,Html,我有以下HTML: <div class="eventContainer" id="dennaVecka" style="background-color: #2B4699;"> <p>Denna vecka</p> </div><!--eventContainer ends--> <div class="eventList" id="dennaVecka_table"> ... </div> 我想要

我有以下HTML:

<div class="eventContainer" id="dennaVecka" style="background-color: #2B4699;">
    <p>Denna vecka</p>
</div><!--eventContainer ends--> 
<div class="eventList" id="dennaVecka_table">
...
</div>
我想要:当单击div class eventContainer或其中的段落时,我想要使用eventContainer的ID(ID=“dennaVecka”)来显示它下面的div class eventList。当前设置的问题是,如果单击段落,我不知道如何获取eventContainer的ID。如果单击该段落,我将获得该段落的ID(“未定义”)

无论我单击div还是段落,都有办法在jQuery中获取eventContainer的ID吗?


也许我应该用另一种方式设置HTML?

使用这样一个事实,即单击事件会冒泡到父容器。在这种情况下,您只能将一个事件处理程序绑定到
.eventContainer
,并读取
this.id
以获取容器id:

$('.eventContainer').click(function (e) {
    eventID = this.id;
    $('.eventList#' + eventID + '_table').fadeIn(300);
});

因此,如果您单击
中的
p
元素,
事件容器
事件仍将由上述侦听器在
.eventContainer
上处理,并且
指向它。

有效!非常感谢。是调用.eventContainer选择器使冒泡停止在此处并显示该ID,例如不是.eventContainer的父ID吗?当您单击
p
中的
元素时。eventContainer
此事件不受任何处理(您不将事件绑定到
p
)。但是,单击事件气泡到达父级,然后到达下一个父级,直到到达
html
元素。您将click事件绑定到
.eventContainer
,这样它也会检测子
p
元素上的事件,因为这个事件最终会出现在它上面。从那里您可以可靠地获得
id
$('.eventContainer').click(function (e) {
    eventID = this.id;
    $('.eventList#' + eventID + '_table').fadeIn(300);
});