JavaScript仅将EventListener添加到主容器和第二个子元素
如何仅向主容器及其第二个子元素添加事件?在本例中,它是JavaScript仅将EventListener添加到主容器和第二个子元素,javascript,html,addeventlistener,Javascript,Html,Addeventlistener,如何仅向主容器及其第二个子元素添加事件?在本例中,它是id=“container”和所有class=“secondChild” 我当前要做的是将侦听器添加到div中的所有元素 ele = document.getElementById('container'); ele.addEventListener('mousedown',myFunction) <div class="main" id="container"> <div
id=“container”
和所有class=“secondChild”
我当前要做的是将侦听器添加到div中的所有元素
ele = document.getElementById('container');
ele.addEventListener('mousedown',myFunction)
<div class="main" id="container">
<div class="firstChild">
<div class="secondChild">
<div class="inner">
<div class="innerOne">This is Element 1</div>
<div class="innerTwo">This is Element 2</div>
</div>
</div>
<div class="secondChild">
<div class="inner">
<div class="innerOne">This is Element 3</div>
<div class="innerTwo">This is Element 4</div>
</div>
</div>
<div class="secondChild">
<div class="inner">
<div class="innerOne">This is Element 5</div>
<div class="innerTwo">This is Element 6</div>
</div>
</div>
</div>
</div>
ele=document.getElementById('container');
ele.addEventListener('mousedown',myFunction)
这是元素1
这是元素2
这是元素3
这是元素4
这是元素5
这是元素6
您可以使用事件委派:
发件人:
事件委派利用了
JavaScript事件:事件冒泡和目标元素。当
事件在元素上触发,例如鼠标单击
按钮,在该元素的所有
祖先。这个过程称为事件冒泡;这件事引起了轩然大波
从原始元素到DOM树的顶部。目标
任何事件的元素都是原始元素,即
例如,并存储在事件对象的属性中。使用事件
委派可以向元素添加事件处理程序,请稍候
使事件从子元素冒泡出来,并轻松确定
事件起源于哪个元素
因此,您可以将侦听器附加到#container
(您可以将其附加到任何祖先),并检查事件的目标类(或您想要的任何其他属性)
(或者将类更改为secondChild
,实际上我不太了解您试图将处理程序附加到的元素。我的英语也很抱歉)这称为事件委派,这是非常常见的做法。这回答了你的问题吗?他们都是同一个事件监听器?@EmilioGrisolía是的。所有人都参加了同样的活动
document.getElementById('container').addEventListener('event-name', ev => {
switch(ev.target.className) {
case 'inner':
case 'innerOne':
case 'innerTwo':
// do something?
break;
}
});