Как установить фокус для определенного поля в модале Bootstrap, как только оно появится

Я видел пару вопросов в отношении модов начальной загрузки, но ни один из них точно не такой, так что я продолжу.

У меня есть модал, который я называю 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();
   });

Но это было безрезультатно. Наконец, я попытался привязаться к «шоу»; событие, но даже в этом случае ввод не будет фокусироваться. И наконец, просто для тестирования, так как у меня было подозрение, это касается порядка загрузки js, я вставил setTimeout просто чтобы посмотреть, задержу ли я секунду, сработает ли фокус, и да, это работает! Но этот метод явно дерьмо. Есть ли способ получить такой же эффект, как показано ниже, без использования setTimeout?

  $("#modal-content").on('show', function(event){
    window.setTimeout(function(){
      $(event.currentTarget).find('input#photo_name').first().focus()
    }, 0500);
  });

Ответы на вопрос(11)

Ваш ответ на вопрос