Nic*_*sen 8 html jquery html-table hide fadeout
我知道之前已经问过这个问题,但我似乎遇到的问题与之前提出的问题不同.我有一个表,我希望每一行都有一个删除链接,淡出表行,然后从DOM中删除表行.我的第一个问题是我无法获得jQuery fadeOut效果来处理表行,并发现你必须在行的td元素上调用fadeOut.所以,这是我的jJavascript:
$('span.deleteItem').live('click', function() {
$(this).closest('tr').find('td').fadeOut('fast',
function(){
$(this).parents('tr:first').remove();
});
return false;
});
Run Code Online (Sandbox Code Playgroud)
span元素位于td内部,因此我在单击时找到最接近的tr元素,然后在每个td元素上放置fadeOut函数.这非常有效.
问题是在回调函数中,'this'实际上是引用窗口元素而不是隐藏的单个td元素.根据我的理解,'this'应该引用淡出的元素.
有任何想法吗?
Dio*_*ane 14
抓住"this"引用并传递给它:
$('span.deleteItem').live('click', function() {
var here = this;
$(this).closest('tr').find('td').fadeOut('fast',
function(here){
$(here).parents('tr:first').remove();
});
return false;
});
Run Code Online (Sandbox Code Playgroud)
小智 5
我认为这就是你要找的东西:
$('span.deleteItem').live('click', function() {
var tableRow = $(this).closest('tr');
tableRow.find('td').fadeOut('fast',
function(){
tableRow.remove();
}
);
});
Run Code Online (Sandbox Code Playgroud)
编辑:我认为Opatut是正确的,正如他的jsFiddle所示.