ブートストラップモーダルに関していくつかの質問を見てきましたが、これとまったく同じものはないので、先に進みます.
私はonclickと呼ぶモーダルを持っています...
$(".modal-link").click(function(event){
$("#modal-content").modal('show');
});
これは正常に動作しますが、モーダルを表示するときに最初の入力要素に注目したいと思います...場合によっては、最初の入力要素の ID が #photo_name になります。
だから私は試しました
$(".modal-link").click(function(event){
$("#modal-content").modal('show');
$("input#photo_name").focus();
});
しかし、これは無駄でした。最後に、「show」イベントにバインドしようとしましたが、それでも入力がフォーカスされません。最後に、テストのために、これは js の読み込み順序に関する疑いがあったため、setTimeout を入れて、1 秒遅らせるかどうか、フォーカスが機能するかどうかを確認しました。はい、機能します! しかし、この方法は明らかにクズです。setTimeout を使用せずに以下と同じ効果を得る方法はありますか?
$("#modal-content").on('show', function(event){
window.setTimeout(function(){
$(event.currentTarget).find('input#photo_name').first().focus()
}, 0500);
});