2013-05-08 13 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