Я видел пару вопросов относительно модов начальной загрузки, но ни один из них точно не такой, так что я продолжу.
У меня есть модал, который я называю 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);
});