没有特定选择器的儿童的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等)上。

是否有某种方法可以实现我的期望,而不是使用*或其他方法?

P.S。我不想使用直接绑定-$('.parent').children().click(function() {...});-因为它比较慢,并且在动态添加子代的情况下不起作用。

解决方法

寻找的选择器是> *

$('.parent').on('click','> *',function() { ... });

(实际的解决方案由Josh Crozier在评论中提出,我只是将其重新发布为答案。)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...