Javascript 添加类和删除类在单个语句中不起作用

Javascript 添加类和删除类在单个语句中不起作用,javascript,jquery,Javascript,Jquery,您需要在slideDown()上以回调函数的形式给出第二条语句: 或者更好的是,您还需要使用slideUp的回调函数 $("button").click(function(){ $("#p1").addClass("size").slideUp(2000).slideDown(2000, function () { $(this).removeClass("size"); }); }); 因为它们不应该并行发生,而是在每一个都完成后按顺序发生。实际上它们是在添加和删

您需要在
slideDown()
上以回调函数的形式给出第二条语句:

或者更好的是,您还需要使用
slideUp的回调函数

$("button").click(function(){
    $("#p1").addClass("size").slideUp(2000).slideDown(2000, function () {
      $(this).removeClass("size");
    });
});

因为它们不应该并行发生,而是在每一个都完成后按顺序发生。

实际上它们是在添加和删除fine,但它是立即发生的。你需要推迟一下

$("button").click(function() {
    $("#p1").addClass("size").slideUp(2000, function () {
        // Execute this after 2 seconds of slideUp animation.
        $(this).slideDown(2000, function () {
            // Execute this after 2 seconds of slideDown animation.
            $(this).removeClass("size");
        });
    });
});

所以你想点击按钮,添加一个类,向上滑动,然后向下滑动,然后一次性删除该类?我想你想要的是一个“动画”功能,你可以试试这个:亚伯拉罕,你在吗<代码>:)
你好,普拉文,我在这里!任何动画方法,如
slideUp()/slideDown()
都使用fx队列,这样它就不会并行运行。您的第一个代码片段足够了,可读性也更高:)@A.Wolff first有点错误。但第二个是正确的。哦,等等,那么你的意思是说两者都做相同的事情?都做相同的事情,第二个是显式版本,但在不利于可读性的情况下,imhoYa,它在jQuery@PraveenKumar只需
stop()
stop(true,true)
(在本例中与只需
stop(true)
)即可完成之前的任何动画,我想对于显示的元素,并不是人们真正期望的行为
$("button").click(function() {
    $("#p1").addClass("size").slideUp(2000, function () {
        // Execute this after 2 seconds of slideUp animation.
        $(this).slideDown(2000, function () {
            // Execute this after 2 seconds of slideDown animation.
            $(this).removeClass("size");
        });
    });
});
$("button").click(function(){
    $("#p1").addClass("size").slideUp(2000, function(){$(this).slideDown(2000 ,function(){ $(this).removeClass("size")})});
    /* p1 is a id of element, i want to add size class after that to remove it */
});