Что ты имеешь в виду? Вы тоже хотите автоматически скрывать #overlay? Msgstr "Как я могу изменить свой код, чтобы он выключался через некоторое время?" Если вы хотите автоматически, сделайте это:
var hide = setTimeout(function () {
$('#overlay').css('visibility', 'hidden');
}, 5000);
И имейте в виду, что установка видимости скрытого только скрывает его, но все же занимает пространство. Настройка Отображение: нет (скрыть ()) полностью скрывает.
Другое дело, что вы не должны использовать идентификатор для этого div. Как вы, вероятно, знаете, идентификатор можно использовать только один раз, что говорит о том, что вы никогда не сможете использовать свою функцию на нескольких библиотеках с одинаковыми функциями. Я бы сделал это классом, а затем:
$('.album').click(function () {
$(this).children('.overlay').css('visibility', 'hidden');
});
Таким образом, он будет работать с каждым li, у которого есть оверлей div.