我有一个投资组合,我列出了投资组合项目。 我有课程,所以当你点击该项目时,它有效果。 出于某种原因,当我点击减号按钮时,它不会删除该类' on'。
这是jQuery:
$('.portfolio-item').click(function() {
$(this).addClass('on');
});
$('.minus').click(function() {
$(this).closest('.portfolio-item').removeClass('on');
});
这里是元素设置:
<div class="portfolio-item" style="margin-top: 5px; ">
<div class="overlay">
<h1>LOW POLY ISLANDS</h1>
<h3>LOW POLY</h3>
</div>
<div class="about">
<h1>LOW POLY ISLANDS</h1>
<h3>LOW POLY</h3>
<div class="descrip">
This is a low poly island make in Blender and edited in Photoshop.
</div>
<div class="minus"></div>
<div class="plus"></div>
</div>
<img src="https://mir-s3-cdn-cf.behance.net/project_modules/max_1200/57909c29180525.55fc4b1875c26.png" width="100%" />
</div>
我该如何解决这个问题 - 我希望能够删除课程&#39; on&#39;当我点击&#39;减去&#39;。
答案 0 :(得分:6)
点击minus
后,它会删除课程on
。但是,与此同时,由于minus
位于portfolio-item
内,它会触发其click
事件并将此类应用回来。
您可以使用e.stopPropagation()
禁用此行为。
根据文档, e.stopPropagation
阻止事件冒泡DOM树,防止任何父处理程序被通知事件。
这是工作JSFiddle demo。它看起来很糟糕,但演示了功能。
答案 1 :(得分:3)
您需要使用 e.stopPropagation()
$('.minus').click(function(e) {
e.stopPropagation();
$(this).closest('.portfolio-item').removeClass('on');
});