setTimeout双击问题
问题描述:
在我的表格中,我想单击一行。当该行被点击时,它会上下扩展。为了显示展开的内容,我需要位置相对和所选行更高的z-index。setTimeout双击问题
当我再次单击该行以折叠它时,它会落在其他行的后面,因此我需要延迟删除较高的Z-index和位置设置。
我已经玩过.delay,似乎只适用于动画功能而不是CSS函数。我尝试使用css函数队列,但也失败了。
最接近我成功的是下面的代码,但是,由于某些原因,它需要我双击折叠行而不是单击。我做错了什么?谢谢
$(".expanding").toggle(
function(){
$(this).animate ({
'z-index': '9999',
}, 1)
$(this).css({ position: 'relative'});
},
function() {
$(this) = setTimeout((function() {
$(this).animate ({
'z-index': '0',
})
$(this).css({ position: 'static'});
}), 500);
});
编辑;另外,在任何人提到它之前,我都不能使用toggleClass作为这一部分。
EDIT2:正如@charlietfl指出的那样..“'this'在setTimeout中丢失了元素的上下文”..我重置了这个并修复了我的问题。
答
正如@charlietfl指出的那样。“'this'在setTimeout内部失去了元素的上下文”..我重置并修复了我的问题。
'$(this)= setTimeout(...);'你期待它做什么? – 2014-10-19 13:22:26
你能设置一个http://jsfiddle.net让我们自己尝试吗? – Niklas 2014-10-19 13:28:15
'toggle(Fn,Fn)'已弃用。你使用的是什么版本的jQuery? setTimeout中的'this'丢失了元素 – charlietfl 2014-10-19 13:29:13