javascript - jQuery 点击事件处理类元素和内部元素

标签 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>

以及以下 jQuery:

eventID = null;
$('.eventContainer p, .eventContainer').click(function (e) {
//eventID = $(this).attr('id');
eventID = e.target.id;
$('.eventList#' + eventID + '_table').fadeIn(300);
//alert(e.target.id);
});

我想要:当div class eventContainer单击其中的段落时,我想使用eventContainer的ID(id =“dennaVecka”)来显示其下方的div class eventList。我当前设置的问题是,如果单击该段落,我不知道如何获取 eventContainer 的 ID。如果我单击该段落,我将获得该段落的 ID(“未定义”)。

有没有办法在jQuery中无论点击div还是段落都获取eventContainer的ID?

也许我应该以其他方式设置 HTML?

最佳答案

利用单击事件向上冒泡到父容器的事实。在这种情况下,您只能将一个事件处理程序绑定(bind)到 .eventContainer 并读取 this.id 来获取容器 ID:

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

因此,如果您单击 .eventContainer 内的 p 元素,事件仍将由 .eventContainer 上的上述监听器处理,并使用 this 指向它。

关于javascript - jQuery 点击事件处理类元素和内部元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28729092/

相关文章:

javascript - 使用标记和群集创建自定义图像

javascript - 如何将 <div> 绝对定位到父级和相对于邻居

javascript - 选择框隐藏下拉列表中的第一个选项条目?

javascript - 是否可以使用 HTML 按钮上传文件以供 W3C 文件 API 使用?

javascript - KitKat WebView 错误地报告 pageYOffset

javascript - 预加载大型 JSON 文件

javascript - 如何获取日期范围选择器范围内的日期所选日期

javascript - jquery动态自动完成文本框url

javascript - 使用 jquery 从 ajax 查询导入数据时,从 html 中剥离/删除第一行?

mysql - 清理充满 html 标签的旧数据库