2013-05-08 68 views
0

我想让div元素爆炸然后重新出现。这部分工作正常,但是当创建新的div时,爆炸效果将无法在副本上工作。如何在新创建的元素上使用jquery效果(爆炸)

这里是我的Jquery:

$(document).ready(function(){ 
     $("#thediv").click(function(){ 
      $("#thediv").effect('explode'); 
      $(".mainBody").append("<div id='thediv'> </div>"); 
     }); 
    }); 

这里是我的HTML:

<div class="mainBody" align = "center"> 
     <div id="thediv" style=" width: 100px; height: 100px; background-image: url('http://smartisan.net/stripes.png')"></div> 
    </div> 

,在这里,如果你想看到它的页面:Right Here

感谢

回答

2

使用jQuery效果/动画不会从DOM中删除元素,它只是隐藏它。所以你只需要使用完整的回调来重新设置它。

$("#thediv").click(function(){ 
    $("#thediv").effect('explode', function() { 
     $(this).show() 
    }); 

小提琴这里:http://jsfiddle.net/HBepC/1/

+0

+1我没有检查文档,并认为它被删除 – fmsf 2013-05-08 21:57:11

+0

谢谢RafH,它现在可以工作。 – 2013-05-08 21:58:19

+0

@WillemHunt欢迎来到stackoverflow。如果这确实解决了您的问题,则应使用绿色箭头将其标记为正确答案。 – fmsf 2013-05-08 22:01:54

1
$(document).ready(function(){ 
    $("body").on("click","#thediv",function(){ 
     $("#thediv").effect('explode'); 
     $(".mainBody").append("<div id='thediv'> </div>"); 
    }); 
}); 

使用“on”与事件名称绑定动态加载的元素

+1

即同一已经做了一下,你是委派事件“#thediv”,但一旦它被删除的事件也不见了。您需要将其委托给至少父级别的人员。修复它,我会删除downvote – fmsf 2013-05-08 21:53:36

+0

此外,我敢肯定爆炸不会删除元素,所以$(“#thediv”)。css(“display”,“block”); insed的追加将工作。 – 2013-05-08 21:56:25

+0

你说得对fmsf,我的不好。 – 2013-05-08 21:59:36