0

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

$("#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();

任何帮助表示赞赏

4

2 回答 2

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 必须是唯一的

我修改了上面的代码以检查下一个带有 open 的 id,它在这个小提琴中工作正常。我没有更改您的任何 html 代码,但我建议您修复您的 ID。

http://jsfiddle.net/5Zpej/

于 2012-07-31T19:10:42.410 回答
-1

这是一个示例,说明如何在单击时使对象“slideToggle”-able:

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

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

例子:小提琴

于 2012-07-31T19:15:58.360 回答