setTimeout双击问题

时间:2014-10-19 13:21:17

标签: jquery css3

在我的表中,我想点击一行。单击该行时,它会向上和向下展开。为了显示扩展的内容,我需要位置相对和所选行的更高的z-index。

当我再次单击该行以折叠它时,它会落后于其他行,因此我需要延迟删除更高的z-index和位置设置。

我玩过.delay并且似乎只适用于animate函数而不是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);
    });

EDIT;此外,在任何人提及之前,我不能在本节中使用toggleClass。

EDIT2:正如@charlietfl指出的那样......" '这'在setTimeout里面丢失了元素的上下文" ..我重置了它并解决了我的问题。

1 个答案:

答案 0 :(得分:0)

正如@charlietfl所指出的那样..“这个'在setTimeout中失去了元素的上下文”..我重置了这个并解决了我的问题。