2012-04-19 62 views
0

我想動畫我的錶行與jquery fadeIn。這是我寫到目前爲止的代碼片段。請告訴我我錯在哪裏。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/)。 – 2012-04-19 11:54:34

+0

問題是fadein效果不工作... – mfn 2012-04-19 11:54:54

+0

我是一個新手,我沒有jsfiddle上的帳戶:( – mfn 2012-04-19 11:57:37

回答

1

在代替您提供您所使用的HTML,我想與你fadeIn代碼的主要問題是,你已經添加的元素,這是明顯的了,所以在fadeIn沒有效果。

我設法通過稍微切換執行順序來實現這個工作。除了使用insertBefore,我用append並拖着fadeIn創造新tr元素:

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

由此可以看出這裏演示:http://jsfiddle.net/HZwvA/

+0

我仍然沒有使用insertBefore和fadeIn,但是我已經實現了我想要做的事情。但非常感謝你幫助我。它真的值得.. – mfn 2012-04-20 04:58:21