延迟在悬停中添加一个等级2秒()

The*_*Kid 4 jquery

如何使用缓和或延时addClass();

$("#date_1").hover(
    function () {
        $(this).addClass("door");
        $(this).addClass("doorstatic", "slow"); // after 2seconds i want to add this class during the hover
    }, 
    function () {
        $(this).removeClass("door");
        $(this).removeClass("doorstatic"); // both classes are instantly removed when hover off
    }
);
Run Code Online (Sandbox Code Playgroud)

and*_*lrc 12

$("#date_1").hover(   
    function () {
        var $this = $(this);

        $this.addClass("door");
        setTimeout(function() {
            $this.addClass("doorstatic");
        }, 2000); // 2000 is in mil sec eq to 2 sec.
    },
    function () {
        $(this).removeClass("door doorstatic");
    }
);
Run Code Online (Sandbox Code Playgroud)

你可以把你的课分组 removeClass("door doorstatic")

这里的问题是,如果你鼠标移开并在两秒之前鼠标移出,你仍然会doorstatic在你的元素上有类.

修复:

$("#date_1").hover(    
    function () {
        var $this = $(this),
            timer = $this.data("timer") || 0;

        clearTimeout(timer);
        $this.addClass("door");

        timer = setTimeout(function() {
            $this.addClass("doorstatic");
        }, 2000); // 2000 is in mil sec eq to 2 sec.

        $this.data("timer", timer);
    },
    function () {
        var $this = $(this),
            timer = $this.data("timer") || 0;

        clearTimeout(timer);
        $this.removeClass("door doorstatic");
    }
);
Run Code Online (Sandbox Code Playgroud)

jsFiddle上创建了解决方案的实例.