Ничего себе, ни один из ответов не дает простое решение: Используйте setTimeout
и отменить тайм-аут по щелчку:
$(".fadeOutbox").click(function() {
// Cache the jQuery object
var $this = $(this);
// Do we already have a timer running?
var timer = $this.data("timer");
if (timer) {
// Yes, cancel it
clearTimeout(timer);
$this.removeData("timer");
}
// (You may want an `else` here, it's not clear)
// In five seconds, fade out
$this.data("timer", setTimeout(function() {
$this.removeData("timer");
$this.fadeOut('slow');
}, 5000));
});
Я не 100% уверен, что выше запуска на события, которые вы хотите, но две части соответствующего кода являются это, что график приурочен действий:
// In five seconds, fade out
$this.data("timer", setTimeout(function() {
$this.removeData("timer");
$this.fadeOut('slow');
}, 5000));
и это, который отменяет его (например, по щелчку):
var timer = $this.data("timer");
if (timer) {
// Yes, cancel it
clearTimeout(timer);
$this.removeData("timer");
}
Вы хотите скрыть это при щелчке, но скрыть все равно, если он не щелкнет? Когда нужно знать? – Sergio
Вам нужно запланировать таймаут после того, как какое-либо событие, которое я предполагаю, появится, вы ничего не указали. –