Я видел пару вопросов в отношении загрузочных модалов, но ничего подобного не было, поэтому я продолжу.
У меня есть модальный, который я вызываю onclick так...
$(".modal-link").click(function(event){
$("#modal-content").modal('show');
});
Это отлично работает, но когда я показываю модальный, я хочу сосредоточиться на первом элементе ввода... В этом случае первый элемент ввода имеет идентификатор #photo_name.
Итак, я попробовал
$(".modal-link").click(function(event){
$("#modal-content").modal('show');
$("input#photo_name").focus();
});
Но это было бесполезно. Наконец, я попытался привязать к событию 'show', но даже в этом случае вход не будет сфокусирован. Наконец, просто для тестирования, поскольку у меня было подозрение, что это касается порядка загрузки js, я поставил setTimeout только для того, чтобы увидеть, задержу ли я секунду, будет ли работать фокус, и да, это работает! Но этот метод, очевидно, дерьмо. Есть ли способ получить тот же эффект, что и ниже, без использования setTimeout?
$("#modal-content").on('show', function(event){
window.setTimeout(function(){
$(event.currentTarget).find('input#photo_name').first().focus()
}, 0500);
});