0
因此,我有一些div类与“nieuwitem”,并根据他们在工作流程上的位置(左,中,右),他们分别有一个add1类bar1,bar2,bar3。第二次点击不工作jquery
当我点击.nieuwitem时,它会将点击的div更改为绝对div并增加宽度以覆盖其他项目,并添加类“activenews”。它还在点击的div的位置上添加了一个无形的div,以保持剩余边距(所以其他项目不会混杂在一起)。
当我点击另一个div或绝对div时,绝对div(class =“activenews”)通过删除绝对div并使隐形div(invisitem)回到可见状态变回正常。
但是,当我尝试点击第三次设置回正常的div时,因此它再次展开,它不起作用。我的意思是,没有什么是触发的。甚至没有“警报('嗨');”。
在此先感谢
<script>
$('.nieuwitem').click(function(){
alert('hi');
var dis = $(this).clone();
$('.activenews').remove();
$('.invisitem').animate({opacity:1}).removeClass('invisitem').removeAttr('style');
if($(this).attr('class') == 'nieuwitem bar1' || $(this).attr('class') == 'nieuwitem bar2'){
var offset = $(this).offset();
$(this).hide();
dis.insertAfter($(this)).animate({opacity:0},500).addClass('invisitem');
$(this).css({ height:'320', position:'absolute', 'top' : offset.top, 'left':offset.left, 'background-image':'none', 'background-color':'rgba(255,255,255,0.1)'}).addClass('activenews').hide().animate({width:'42%', 'backgroundColor':'rgba(255,255,255,0.9)'},10).fadeIn(800).addClass('activenews');
}
else{
var offset = $(this).prev().offset();
$(this).hide();
dis.insertAfter($(this)).animate({opacity:0},500).addClass('invisitem');
$(this).css({ height:$(this).height(), position:'absolute', 'top' : offset.top, 'left':offset.left, 'background-image':'none', 'background-color':'rgba(255,255,255,0.1)'}).addClass('activenews').hide().animate({width:'42%', 'backgroundColor':'rgba(255,255,255,0.9)'},10).fadeIn(800).addClass('activenews');
}
}
);
</script>
检查多个类的文字'class'属性也是不安全的。不能保证它包含那些精确顺序的类。最好使用['.hasClass()'](http://api.jquery.com/hasClass/)。 – JJJ
@Juhana,这是一个很好的观点。更好地评论这个问题,而不是这个未被接受的答案,虽然 – lnrbob
@Stvdd不担心这两个问题:) – lnrbob