我正在尝试删除之前由JQuery事件添加的类,但它只是不会播放。请指导我!
这适用于班级:
$('.project').click(function() {
var imageTotal = $(this).find('.gallery img').length;
if (imageTotal === 1) {
$('.next-image', this).hide();
$('.prev-image', this).hide();
} else {
$('.next-image', this).show();
$('.prev-image', this).show();
}
$('img.feature').hide();
$('.gallery img:nth-of-type(' + imageCounter + ')', this).addClass('current');
$(this).addClass('active');
});
这就是我试图用以下方法删除它:
$('.back').click(function() {
$('.gallery').hide();
$('.back').hide();
$('img.feature').show();
$(this).parent('.project').find('div').removeClass('active');
$('.prev-page').show();
});
这是HTML结构:
<div class="project">
<img class="feature" src="content/dream1.jpg"/>
<div class="description">
<h3>Exhibition Roadshow</h3>
<h4>The Royal Borough of Kensington and Chelsea 2012</h4>
</div>
<div class="gallery">
<img src="content/dream2.jpg"/>
<img src="content/dream3.jpg"/>
<img src="content/dream4.jpg"/>
<img src="content/dream5.jpg"/>
<div class="next-image">→</div>
<div class="prev-image">←</div>
</div>
<div class="back">S</div>
</div>
您可以看到实时示例here,如果有帮助的话......
答案 0 :(得分:1)
您正在从错误的元素中删除该类。 这一行:
$(this).parent('.project').find('div').removeClass('active');
应该是这样的:
$(this).closest('.project').removeClass('active');
由于.project是要删除活动类的元素。你上面做的是在.project元素中搜索“div”。
答案 1 :(得分:0)
你的第一个问题是: $(本).parent( '项目。 ')的找到(' DIV ')强> .removeClass(' 激活');
但真正的问题是,类已被删除,但是您无法终止catch事件,因此它会在您再次设置相同类的单击事件上向.project
冒泡。这一切都发生在同一时间,所以似乎从未删除过类。
解决方案?在点击事件结束时添加return false;
答案 2 :(得分:0)
在$('.project').click(function() {
方法$(this).addClass('active');
中,将有效值添加到$('.project')
...
并且您正尝试将其从$('.project')
的孩子中删除...
你需要的是
$('.back').click(function() {
$('.gallery').hide();
$('.back').hide();
$('img.feature').show();
$(this).parent('.project').removeClass('active');
$('.prev-page').show();
});