每次单击该链接时,它会在成功的当前行之后添加一个表格行
$("#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();
感谢任何帮助
答案 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
}
});
编辑:
我修改了上面的代码以检查下一个id也是打开的,它在这个小提琴中运行正常。我没有改变你的任何HTML代码,但我建议修改你的ID。
答案 1 :(得分:-1)
以下是您如何制作对象的示例&#34; slideToggle&#34; -able on click:
$("#idToHide").click(function(){
$(this).slideToggle();
});
说明:首先,您需要附加一个单击处理程序。你可以做这个jQuery的点击功能。点击处理程序可以访问使用this
单击的元素。要隐藏元素,只需使用jQuery选择它 - $(this)
- 然后slideToggle()
。
示例:fiddle