2

我有一个点击事件(见下文)。我遇到的问题是我正在触发它,但 targ.hide('slow') 事件是异步的,因此我能够在第一个 targ.hide('slow') 仍在运行时再次触发该事件. 我已经设法用一个标志解决了这个问题,但想知道是否有更好的方法来阻止这个问题?提前致谢。

var flag = false;
$('div.titlebar div.re.b1 div.r .sides').delegate('.close', 'click', function (e)
{
    if (!flag)
    {
        flag = true;
        var cnt = $('table.sides tbody tr > td').length;
        var targ = $(this).closest('td');
        var side = $(this).parent('div[itemprop]').attr('itemprop');

        if (cnt > 1)
        {
            targ.hide('slow', function () { targ.remove(); LoadSides(dkey); flag = false; });
            updatesidedel(side, true);
        }
    }
    e.stopPropagation();
});
4

2 回答 2

4

您可以使用:animated来检查是否td仍在动画中。

if( $('td:animated').length > 0 ) 
于 2012-10-24T14:39:22.247 回答
1

您应该尝试使用:jquery 的 :selector来查看您的项目当前是否为动画。

于 2012-10-24T14:38:58.767 回答