2012-04-19 88 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