2012-04-19 15 views
0

jquery fadeInを使用してテーブル行をアニメーション化したいとします。これは私が今までに書いたコードに従っています。私が間違っている場所を教えてください。あなたが使用しているHTMLを提供する代わりにJquery insertBeforeとfadeIn

$("#insert_heading").live("click", function (e) { 
    e.preventDefault(); 
    if ($("#first_msg")) { 
     $("#first_msg").fadeOut(500, function() { 
      $("#first_msg").remove(); 
     }); 
    } 
    if (heading_count >= 6) { 
     alert("you cannot create more than 6 headings"); 
     return false;; 
    } 

    var heading_html = ""; 
    heading_count++; 

    heading_html += '<tr class="heading" id="row_' + heading_count + '">'; 
    heading_html += '<td align="left">&nbsp;Heading ' + heading_count + ':</td>'; 
    heading_html += '<td colspan="3" align="left" valign="middle">'; 
    heading_html += '<input type="text" name="h_' + heading_count + '" class="input validate[required] text-input"/>'; 
    heading_html += '<td align="left" class="heading_delete">'; 
    heading_html += '<a href="#" id="del_' + heading_count + '"><img width="16" height="16" title="Delete" src="images/delete_heading.png"></a></td>'; 
    heading_html += '</td>'; 
    heading_html += '</tr>'; 

    $(heading_html).insertBefore("#submit_button").fadeIn("slow"); 
}); 
+1

は私達にあなたのHTMLを表示してください、とのデモを提供しますあなたのコードは、[JS Fiddle](http://jsfiddle.net/)のようなものです。覚えておいてください:私たちは[SSCCE(短自己完結型/コンパイル可能な例)](http://sscce.org/)を探しています。 –

+0

問題はフェーディン効果が働いていない... – mfn

+0

私はnewbです、私はjsfiddleのアカウントを持っていません:( – mfn

答えて

1

、私はあなたのfadeInコードの主な問題は、あなたがすでに要素を追加したことであり、それがすでに表示なのでfadeInは効果がありませんと思います。

私は、実行の順番を少しずつ切り替えることでこの問題を解決することができました。 insertBeforeを使用するのではなく、私がappendを使用して、新しいtr要素の創造にfadeInをチェーン:これはここで実証され見ることができます

$('table').append($(heading_html).fadeIn("slow")); 

http://jsfiddle.net/HZwvA/

+0

まだ私はinsertBeforeとfadeInを使用していませんが、私がしたいことを達成しました。しかし、私が大変助けてくれてありがとう。本当に価値がある.. – mfn

関連する問題