#javascript #jquery
#javascript #jquery
Вопрос:
Я пытаюсь отложить addclass
функцию в этом плагине, однако она не работает. Я добавил .delay(14000)
непосредственно перед .addClass
функцией.
Код:
if (typeof a.cookieguard.displayMessage === "undefined") {
a.cookieguard.displayMessage = function (b, c) {
a("body").delay(14000)
.addClass("cookie-guard")
.attr("marginTop", a("body").css("marginTop"))
.css("margin", 0)
.delay(b).animate({
marginTop: a(".cookie-guard-msg").outerHeight()
}, a.cookieguard.settings.slideSpeed);
a(".cookie-guard-msg").css("top", -a(".cookie-guard-msg").outerHeight());
a(".cookie-guard-msg").delay(b)
.show()
.animate({top: 0}, a.cookieguard.settings.slideSpeed);
if (a.cookieguard.settings.messageHideDelay != null) {
a.cookieguard.settings.messageHideTimeout = setTimeout(function () {
a.cookieguard.hideMessage(0)
}, c)
}
}
}
Что я делаю не так?
Ответ №1:
jQuery .delay()
работает только с вызовами, которые используют очередь эффектов jQuery (например, обычные анимации).
Чтобы сделать то, что вам здесь нужно, я бы использовал обычный JavaScript setTimeout
:
setTimeout(function() { a("body").addClass("cookie-guard"); /* etc. */ }, 14000);
Комментарии:
1. Ух ты, рад, что все улажено! 🙂