代码之家  ›  专栏  ›  技术社区  ›  Brad

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

  •  0
  • Brad  · 技术社区  · 14 年前

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

    $("#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 回复  |  直到 14 年前
        1
  •  1
  •   wirey00    14 年前

    由于您没有选择已创建的图元,因此链接不会起任何作用。你能做的就是选择下一个 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必须是唯一的

    我修改了上面的代码,以检查打开的下一个id,它在这个小提琴中工作得很好。我没有更改你的任何html代码,但我建议修复你的ID。

    http://jsfiddle.net/5Zpej/

        2
  •  -1
  •   AlexMA    14 年前

    下面是一个如何使对象在单击时能够“滑动切换”的示例:

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

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

    示例: fiddle