target 仅在动画链的一部分中添加元素

target only added element in part of the animation chain

我正在尝试使用 jQuery 构建动画,但我缺少一个简单的步骤。 这是我的实际代码:

$('.wrapper').show('fast',function(){
    $(".bs-glyphicons-list-sub").append(appendable).fadeIn('slow').delay(500).removeClass('attivo');
});

appendable 是添加到 .bs-glyphicons-list-subli 元素。 Appendable 在创建时具有 class attivo。 我想要做的是使 li 元素随着 class 属性缓慢出现,半秒后仅从添加的 li 中删除此 class 。 实际上,它试图从 .bs-glyphicons-list-sub 中删除 class。我怎么说:仅从添加的 li 元素中删除它?

这一行的问题

$(".bs-glyphicons-list-sub")
    .append(appendable)
    .fadeIn('slow')
    .delay(500)
    .removeClass('attivo');

$(".bs-glyphicons-list-sub") 链接到 removeClass

最简单的解决方案是直接访问项目,例如:

$(".bs-glyphicons-list-sub")
    .append(appendable)
    .fadeIn('slow')
    .delay(500);
$(appendable).removeClass('attivo');

如果 appendable 已经是一个 jquery 对象,可以“双重包装”它,但不理想,所以只是 appendable.removeClass("attivo")

另一种方法是使用 .appendTo,但您仍然需要在那里进行额外的导航,例如:

appendable
    .appendTo(".bs-glyphicons-list-sub")
    .removeClass('attivo')
    .parent()
    .fadeIn('slow')
    .delay(500);

请注意,.removeClass() 不受任何动画影响,会立即出现(因此您原件中的 .delay(500) 不执行任何操作)