Jquery 添加一个类,然后在添加类后执行某些操作

Jquery 添加一个类,然后在添加类后执行某些操作,jquery,css,Jquery,Css,嘿,伙计们,我在一个滑块上工作,我必须添加一个具有transform属性的类,一旦该类被完全添加,动画完成,添加或删除另一个类。 这是我做的代码,但它不起作用 $('.backgroundImage').addClass('anim', function(){ $('.backgroundImage').removeClass('anotherClass'); 在这里,我试图添加一个名为anim的类到.backgroundImage,一旦完全附加,就删除第二个类。另一个类 这样做的想

嘿,伙计们,我在一个滑块上工作,我必须添加一个具有transform属性的类,一旦该类被完全添加,动画完成,添加或删除另一个类。 这是我做的代码,但它不起作用

    $('.backgroundImage').addClass('anim', function(){
 $('.backgroundImage').removeClass('anotherClass');
在这里,我试图添加一个名为anim的类到.backgroundImage,一旦完全附加,就删除第二个类。另一个类 这样做的想法是,当一个类完全连接时,只有另一个类被删除,而不是同时删除。 请告诉我哪里做错了。
谢谢。

在transform属性上添加/删除下一个类,而不是在addClass函数上

$( "ul li" ).addClass(function( index ) {
    return "item-" + index;
});
请参阅jquery文档中的示例。

如果您使用CSS3制作动画,那么您可能需要阅读以下文章:

没有提到任何关于多个参数的内容。每个addClass调用只有一个字符串。例如:

$( "p" ).addClass( "myClass yourClass" );

$( "p" ).removeClass( "myClass noClass" ).addClass( "yourClass" );
从jQuery1.4开始,.addClass方法的参数可以接收函数

$( "ul li" ).addClass(function( index ) {
    return "item-" + index;
});
因此,我建议您在代码中使用以下内容:

$('.backgroundImage').addClass('anim');
$('.backgroundImage').removeClass('anotherClass');

除了我删除的功能外,这似乎正是您正在执行的操作。

好的,如果我正确理解您的问题,这可能会有帮助:

所以我得到的是,你正在使用一个CSS动画,并希望在它完成后做一些事情。据我所知,add/remove类是即时的,一旦绑定到类的CSS动画完成,就没有一个简单的方法来判断。因此,除非有人知道更好的方法,否则您只需在JS中手工编写动画时间

添加第一个类,然后调用setTimeout on,延迟等于第一个类的动画持续时间。然后在超时时删除旧类,并添加新类。在本例中,我将延迟设置为1秒,但它可以是任何东西

JS:


嘿,伙计,你能帮我做个小提琴吗?我能在AddClass或RemoveClass上使用dely吗?我想是@DesignerProgrammer。延迟只会在排队的jQuery上起作用,添加/删除不会生效。需要“设置超时”。Add/remove类没有完成时的回调函数,也没有延迟会影响的速度。@badAdviceGuy那么告诉我如何解决这个问题?请给我一个答案。@DesignerProgrammer,类似这样的。。。是的,你说得对,耽搁不行,是我的错p、 您只需设置css动画的持续时间(毫秒)……您不需要暂停,动画制作完成后已经有一个回调。@badGuy谢谢。如果你觉得这是一个真正的问题,请投票。谢谢