jquery-selectors - jQuery.on() 用于没有特定选择器的孩子
问题描述
我有这样的 HTML 结构:
<div class="parent">
<div class="child">
<div class="something">...</div>
</div>
<div class="child">
<div class="something-else">...</div>
</div>
<div class="child">
...
</div>
...
</div>
我在这样的元素上捕获事件(如click
) :.child
$('.parent').on('click', '.child', function() { ... });
但是,我想摆脱显式的类规范,并基于直系血统本身的事实。我想编写不需要任何特定类的子元素的代码。最接近这一点的是:
$('.parent').on('click', '*', function() { ... });
但显然这样的处理程序将传播到更深层次的后代(.something
等.something-else
),而不仅仅是在第一级。
有没有办法实现我正在寻找的东西,使用某些东西而不是*
其他方式?
PS 我不想使用直接绑定 -$('.parent').children().click(function() {...});
因为它速度较慢,并且在动态添加孩子的情况下不起作用。
解决方案
寻找的选择器是> *
:
$('.parent').on('click', '> *', function() { ... });
(实际的解决方案是 Josh Crozier 在评论中提出的,我只是将其作为答案重新发布。)
推荐阅读
- javascript - 无法点击通过 AJAX 呈现的元素
- kubernetes - 不允许同一应用程序的两个 Pod 在 Kubernetes 中的同一节点上
- spring-data-jdbc - Spring Data JDBC中的ORM在映射实体时是否支持JOIN?
- azure-devops - 部署代理是单线程的,但我们需要多个?
- javascript - TouchableOpacity Button 在实时设备上不起作用
- javascript - 单元测试使用 MSAL.js 进行身份验证的 Vue JS 组件
- validation - Laravel 音频 mime 验证器
- c++ - 通用 std::function 参数的函数指针参数失败
- javascript - 如何在文档就绪但不在组件上触发点击事件,仅在“屏幕”上
- sql - 如何在 R 中使用带有 SQL 插值的 SQL 查询“LIKE”?