第二次点击不工作jquery

时间:2012-12-26 12:55:24

标签: jquery click

所以我有一些带有“nieuwitem”类的div,根据他们在工作流程中的位置(左,中,右),他们分别有一个上瘾的类bar1,bar2,bar3。

当我点击.nieuwitem时,它会将点击的div更改为绝对div并增加宽度,使其覆盖其他项目,并添加“activenews”类。它还在点击的div的位置添加了一个不可见的div,以保持剩余边距(因此其他项目不会混淆)。

当我单击另一个div或绝对div时,绝对div(带有class =“activenews”)通过删除绝对div并使不可见div(invisitem)返回可见而变回正常。

但是,当我尝试单击第三次设置回正常的div时,它再次展开,它不起作用。我的意思是,没有任何东西被触发。甚至不是“警报('hi');”。

提前致谢

<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>

1 个答案:

答案 0 :(得分:3)

这是因为您正在克隆元素而不是元素的数据和事件(即点击事件。

如果你改变:

var dis = $(this).clone();

var dis = $(this).clone(true);

它应该工作; check the docs。你的代码中还有一些其他特殊的东西(比如多次添加同一个类)但是你问过上面的问题是答案

P.S。欢迎来到SO:D