今天项目里要求实现一个功能:
点击(+)图标加在一个table的最下方加一行空行,同时空行右边append一个(-)图标.点击(-)的时候删除改行.
一开始用bind(),觉得太麻烦,就想到了live().但貌似live里的回调函数不能指定现成的函数,只能在里面写一个匿名函数,实现方法是这样的:
$('.icon-delone').live('click', function(event){
obj = event.target;
tblId = $(obj).parent("td").parent("tr").parent("tbody").parent("table").attr('id');
$(obj).parent("td").parent("tr").remove();
var index = parseInt($("#"+tblId+" tbody tr:last-child td:first span").html());
if(index!=1){
$("#"+tblId+" tbody tr:last-child td:last").html('<span class="icon icon-delone"></span>');
}
});
其中关于event的参考我是在这个网站找到的: http://www.jb51.net/article/23228.htm
有几点疑问:
①live的回调函数只能用匿名函数吗?我在下面写了一个delOne(event)但死活都是报错(IE8上)
②event是什么类型的对象?貌似不是普通的$(obj)吧, 类似的each()里的回调函数function(i, item)中的item貌似也不是.