복붙노트

[JQUERY] jQuery를 : addClass ()와 같은 사이 수 있습니까 호출 지연 ()?

JQUERY

jQuery를 : addClass ()와 같은 사이 수 있습니까 호출 지연 ()?

해결법


  1. 1.당신은 당신의 클래스의 제거 할 수있는 새로운 큐 항목을 만들 수 있습니다 :

    당신은 당신의 클래스의 제거 할 수있는 새로운 큐 항목을 만들 수 있습니다 :

    $("#div").addClass("error").delay(1000).queue(function(next){
        $(this).removeClass("error");
        next();
    });
    

    또는 디큐 방법을 사용하여 :

    $("#div").addClass("error").delay(1000).queue(function(){
        $(this).removeClass("error").dequeue();
    });
    

    당신이 호출해야하는 이유는 다음 또는 대기열에서 제외 jQuery를 사용하면이 대기중인 항목으로 수행되는 것을 알고는 다음 단계로 이동해야 할 것입니다.


  2. 2.AFAIK 지연 방법은 숫자 만 CSS 수정에 적용됩니다.

    AFAIK 지연 방법은 숫자 만 CSS 수정에 적용됩니다.

    다른 목적을 위해 자바 스크립트가의 setTimeout 방법과 함께 제공 :

    window.setTimeout(function(){$("#div").removeClass("error");}, 1000);
    

  3. 3.나는 이것이이 아주 오래된 게시물입니다 알고 있지만 나는 지원하는 체인이 함수 래퍼 JQuery와에 대한 답변의 몇 가지를 결합했습니다. 누군가에게 혜택을 희망 :

    나는 이것이이 아주 오래된 게시물입니다 알고 있지만 나는 지원하는 체인이 함수 래퍼 JQuery와에 대한 답변의 몇 가지를 결합했습니다. 누군가에게 혜택을 희망 :

    $.fn.queueAddClass = function(className) {
        this.queue('fx', function(next) {
            $(this).addClass(className);
            next();
        });
        return this;
    };
    

    그리고 여기에 removeClass 래퍼입니다 :

    $.fn.queueRemoveClass = function(className) {
        this.queue('fx', function(next) {
            $(this).removeClass(className);
            next();
        });
        return this;
    };
    

    이제이 같은 물건을 할 수 - 대기 3secs을에는 .error 추가, 초 기다린 제거에는 .error :

    . $ ( '# div의') 지연 (1000) .queueAddClass ( '오류') 지연 (2000) .queueRemoveClass ( '오류').;


  4. 4.의 jQuery CSS 조작은 대기하지 않습니다,하지만 당신은 그것을 수행하여 'FX'큐 ​​내에서 실행 할 수 있습니다 :

    의 jQuery CSS 조작은 대기하지 않습니다,하지만 당신은 그것을 수행하여 'FX'큐 ​​내에서 실행 할 수 있습니다 :

    $('#div').delay(1000).queue('fx', function() { $(this).removeClass('error'); });
    

    의 setTimeout를 호출하는 대신 jQuery의 큐 mecanism를 사용하는 등 꽤 같은 일.


  5. 5.이 같은 jQuery를 확장하는 경우 물론 그것은 더 간단 할 것이다 :

    이 같은 jQuery를 확장하는 경우 물론 그것은 더 간단 할 것이다 :

    $.fn.addClassDelay = function(className,delay) {
        var $addClassDelayElement = $(this), $addClassName = className;
        $addClassDelayElement.addClass($addClassName);
        setTimeout(function(){
            $addClassDelayElement.removeClass($addClassName);
        },delay);
    };
    

    당신이 addClass 같은이 기능을 사용할 수있는 후 :

    $('div').addClassDelay('clicked',1000);
    

  6. 6.지연 큐에서 작동합니다. 그리고 지금까지 내가 (애니메이션을 통해 제외) CSS를 조작 알고있는 대기하지 않습니다.

    지연 큐에서 작동합니다. 그리고 지금까지 내가 (애니메이션을 통해 제외) CSS를 조작 알고있는 대기하지 않습니다.


  7. 7.우리의 setTimeout을 사용한다, 그래서 지연이 없음 큐 기능이 작동하지 않습니다 ().

    우리의 setTimeout을 사용한다, 그래서 지연이 없음 큐 기능이 작동하지 않습니다 ().

    그리고 당신은 일을 분리 할 필요가 없습니다. 당신이해야 할 모든이의 setTimeout 방법 모두를 포함하는 것입니다 :

    setTimeout(function () {
        $("#div").addClass("error").delay(1000).removeClass("error");
    }, 1000);
    

  8. 8.이 시도:

    이 시도:

    function removeClassDelayed(jqObj, c, to) {    
        setTimeout(function() { jqObj.removeClass(c); }, to);
    }
    removeClassDelayed($("#div"), "error", 1000);
    

  9. 9.이 간단한 화살표 기능을 수행합니다

    이 간단한 화살표 기능을 수행합니다

    에서는 setTimeout (() => {$ ( "# div에") addClass ( "오류").}, 900);

  10. from https://stackoverflow.com/questions/2510115/jquery-can-i-call-delay-between-addclass-and-such by cc-by-sa and MIT license