如何防止JQuery效果重复?

时间:2013-05-18 06:50:04

标签: jquery

我有一个jquery效果,将特定图像延迟5秒然后滑入。但我想当用户重新加载页面时,图像不会重复该效果。

这是我目前的代码:

 $(window).load(function () {

    setTimeout(function () {
        $("#alex").show("slide", {
            direction: "down"
        }, 1000);
    }, 3000);
});

1 个答案:

答案 0 :(得分:0)

您可以使用Cookie跟踪您是否已在此浏览器中对此页面执行了此操作。你可以这样做:

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

function createCookie(name,value,days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    }
    else var expires = "";
    document.cookie = name+"="+value+expires+"; path=/";
}


// only schedule the effect if we haven't already done it
if (!readCookie("effect1")) {
    $(window).load(function () {
        // write a cookie so we don't do this again
        createCookie("effect1", "done");
        setTimeout(function () {
            $("#alex").show("slide", {
                direction: "down"
            }, 1000);
        }, 3000);
    });
} else {
    // just show it normally
    $(document).ready(function() {
        $("#alex").show();
    });
}