Как установить html элемента, подождать 2 секунды, а затем установить html на что-то еще?
Пример: $("div").html("clicked").delay(2000).html("2 seconds have passed");
Что происходит: div получает "2 секунды, прошедшие" с места в карьер, вместо того, чтобы говорить "нажал" в течение 2 секунд, после чего отобразится "Прошло 2 секунды".
Мне нужно сделать что-то вроде .delay(2000, function() { $("div").html("2 seconds have passed"); })
?
Пример в прямом эфире: http://jsbin.com/UfaYusU/1/edit
Благодарю!
$.delay используется для задержки анимации в очереди, а не для остановки выполнения.
Попробуй это:
setTimeout(function() {
// Do something after 2 seconds
}, 2000);
.delay()
по умолчанию работает только с анимационными функциями, вы можете использовать .promise()
:
$("div").html("clicked").delay(2000).promise().done(function() {
$(this).html("2 seconds have passed");
});
Используйте setTimeout()
если вы хотите запустить некоторый код после задержки...
$("button").click(function(e) {
$("div").html("clicked");
setTimeout(function() {
$("div").html("2 seconds have passed");
}, 2000);
});