Javascript 仅针对子元素,即使事件处理程序也针对父元素 颜色 红色 苹果 草莓 橙色 $('section')。单击(函数(){ $(this.css('color','yellow'); });
我希望Javascript 仅针对子元素,即使事件处理程序也针对父元素 颜色 红色 苹果 草莓 橙色 $('section')。单击(函数(){ $(this.css('color','yellow'); });,javascript,jquery,Javascript,Jquery,我希望部分在单击时变为黄色。然而,由于$('section')也可以引用它们的父元素,因此它也将CSS应用于它们 我如何告诉jQuery仅将CSS应用于单击的子元素而不是父元素? 我不想使用$('section'),因为如果专门单击父元素,我还希望它们变成黄色。因此,我需要一个JavaScript/jQuery解决方案,而不是选择器或HTML解决方案。使用以下方法: <section id="first"> <h1>Colors</h1> &l
部分
在单击时变为黄色。然而,由于$('section')
也可以引用它们的父元素,因此它也将CSS应用于它们
我如何告诉jQuery仅将CSS应用于单击的子元素而不是父元素?
我不想使用$('section')
,因为如果专门单击父元素,我还希望它们变成黄色。因此,我需要一个JavaScript/jQuery解决方案,而不是选择器或HTML解决方案。使用以下方法:
<section id="first">
<h1>Colors</h1>
<section id="red">
<h1>Red</h1>
<section id="apples">
<h1>Apples</h1>
</section>
<section id="apples">
<h1>Strawberries</h1>
</section>
</section>
<section id="orange">
<h1>Orange</h1>
</section>
</section>
$('section').click(function(){
$(this).css('color','yellow');
});
示例:使用以下选项:
<section id="first">
<h1>Colors</h1>
<section id="red">
<h1>Red</h1>
<section id="apples">
<h1>Apples</h1>
</section>
<section id="apples">
<h1>Strawberries</h1>
</section>
</section>
<section id="orange">
<h1>Orange</h1>
</section>
</section>
$('section').click(function(){
$(this).css('color','yellow');
});
示例:尝试以下方法:
e.stopPropagation();
试试这个:
e.stopPropagation();
正确的方法是将“this”改为“e.target”
$('section').click(function(e){
e.stopImmediatePropagation();
$(this).css('color','yellow');
});
更多的关于为什么这样做的信息。
正确的方法是将“this”改为“e.target”
$('section').click(function(e){
e.stopImmediatePropagation();
$(this).css('color','yellow');
});
更多的关于为什么这样做的信息。
使用h1而不是Section看起来你的问题是因为所谓的事件冒泡。使用h1而不是Section看起来你的问题是因为所谓的事件冒泡。
e.stopPropagation()
也有效。@user3650808-KingKing是对的,最好使用e.stopPropagation
,否则,被单击元素本身上的任何其他处理程序也可能被阻止()e.stopPropagation()
也可以工作。@user3650808-KingKing是对的,最好使用e.stopPropagation
,否则被单击元素本身上的任何其他处理程序也可能被阻止()