需要切换使用ajax动态添加的表行

时间:2012-07-31 19:00:03

标签: jquery html

每次单击该链接时,它会在成功的当前行之后添加一个表格行

$("#row"+id+"").after("<tr class='more-info' id='open"+id+"'><td colspan='13' class='mbg'>"+ html +"</td></tr>");

每次单击该链接时,它都会添加另一行,并具有相同的确切信息。我第二次点击它时想要它做的就是隐藏行。

我认为附加.slideToggle()(下面)会起作用,但事实并非如此。

$("#row"+id+"").after("<tr class='more-info' id='open"+id+"'><td colspan='13' class='mbg'>"+ html +"</td></tr>").slideToggle();

感谢任何帮助

2 个答案:

答案 0 :(得分:1)

由于您没有选择创建的元素,因此链接不会执行任何操作。你可以做的是选择下一个tr元素并隐藏。我猜你可能也不想创建另一行。

.click(function(){
    if ($("#row" + id ).next('#open'+id).length > 0) {   // <-- check if there is a next row
        $("#row" + id ).next('#open'+id).slideToggle(); // <-- if there is just toggle next row
    } else {
        $("#row" + id + "").after("<tr class='more-info' id='open" + id + "'><td colspan='13' class='mbg'>testing</td></tr>");
        // else add new row
    }
});

编辑:

  1. ID为数字无效HTML。
  2. ID必须是唯一的
  3. 我修改了上面的代码以检查下一个id也是打开的,它在这个小提琴中运行正常。我没有改变你的任何HTML代码,但我建议修改你的ID。

    http://jsfiddle.net/5Zpej/

答案 1 :(得分:-1)

以下是您如何制作对象的示例&#34; slideToggle&#34; -able on click:

$("#idToHide").click(function(){
   $(this).slideToggle();
});

说明:首先,您需要附加一个单击处理程序。你可以做这个jQuery的点击功能。点击处理程序可以访问使用this单击的元素。要隐藏元素,只需使用jQuery选择它 - $(this) - 然后slideToggle()

示例:fiddle