使用slideDown()向jquery数据表添加一行
Adding a row to jquery-datatable using slideDown()?
在我的视图中,我有两个div,一个负责向数据库添加条目,另一个负责在页面加载时显示所有数据库表行。负责显示我的表内容的div使用DatatablesjQuery插件,这使我在显示这些内容方面的生活更轻松。
这两个div单独运行都很好。但是,我想将它们集成在一起,这样当我使用第一个div添加一个条目时,数据库就会更新,然后这个条目会被附加到第二个div中的Datatable中,而无需重新加载整个页面。
我知道,使用Datatables API,只需使用row.add((和draw((函数,这个过程就足够容易了,这里演示了这一点。
虽然这是一个潜在的解决方案,但我并不完全满意,因为我页面的其余部分使用jQuery的slideDown((来制作外观整洁的动画,我希望我可以将此动画应用于向数据表中添加另一行。如果你看一下他们的例子,它只是插入一行,但如果我能让这行从表中滑下来,看起来会更好。
这是不是可以在不花太多时间的情况下完成的事情?还是应该坚持使用Datatables API并放弃尝试动画化它?我已经尝试过使用jQuery手动追加新行,但这看起来很糟糕,因为我认为我无法重新加载插件来将更改应用到Datatable中。
有人能告诉我正确的方向吗?谢谢
我想我已经解决了!
DEMO
我观察到当点击#addRow
按钮时,它会添加一个类为.odd
或.even
的<tr>
根据row
的个数,即1,3,5...
是奇数,2,4,6...
是偶数。
所以我添加了CSS来平滑转换tr
的高度,设置td
的高度最终会影响tr
的高度。这是我的CSS:
.odd td{
height:0px;
transition:all ease 1s;
padding:5px;
}
.even td{
height:0px;
transition:all ease 1s;
padding:5px;
}
现在,当#addRow
按钮上的click
事件发生时,我们只需要将last
tr
动画化为特定的height
,即可实现slideDown
效果。
该行可以是.odd
或.even
,这取决于每次添加row
时递增的counter
变量。
这就是我在JQuery中所做的。
这是我的JQuery:
$(document).ready(function() {
var t = $('#example').DataTable();
var counter = 1;
$('#addRow').on( 'click', function () {
var tr=t.row;
tr.add( [
counter +'.1',
counter +'.2',
counter +'.3',
counter +'.4',
counter +'.5'
] ).draw();
var cls= counter%2!=0 ? ".odd" : ".even"; //class of latest row added (odd or even) %2 will do it.
$(cls).last().animate({
"height":"50px"
},1000); // Acheive slideDown();
counter++; //Increment Counter Now.
} );
// Automatically add a first row of data
$('#addRow').click();
});
这将为您提供一个起点。
另外请注意:<tr>
不支持slideDown()
。使用css
至0px
手动设置高度也失败。因此,我请求您使用fadeIn()
,而不是使用animate
更改高度。
希望能有所帮助。干杯:(!
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 在GridView中,当单击复选框时,在网格的同一行中使用JavaScript将标签中的值添加到TextBox
- 将一行添加到用户动态创建的特定表中
- 使用Ajax和JQuery从SQL数据库中添加和删除一行
- 在每个固定高度段落的最后一行添加省略号,并隐藏溢出 y
- 如何使用 jQuery 在文本区域中的每一行添加文本
- 如何添加“;选择“;当一行被单击时,类仅限于表的一行
- 如何使用 JavaScript 在 “ ” 和 put 之间的每一行中添加 every
- 当上一行/当前行被填充时,将新行添加到HTML表中
- 如何在从服务器获取数据的动态表的每一行中添加下拉列表
- 如何在嵌入php的html表中为每一行添加复选框,并在数据库(Postgresql)中更新其值
- 使用Jquery在最上面一行添加行数据
- 使用Javascript和MVC将一行添加到我的表中
- 向表中的每一行添加onclick事件
- Jquery在创建新行时不向最后一行添加索引
- 向Flexigrid的一行添加onclick事件
- 如何使用javascript/jquery在每一行添加编辑和删除按钮
- 如何在中为一行添加按列动态的数据
- 如何将两个下拉列表中的一行添加到表中,并在选择时删除
- jQuery 箭头键控函数在表的最后一行添加文本框时停止