どうする? 2 つのオプションがあります。1 つは、スクロール時に位置を動的に計算することであり、位置をリアルタイムで監視する必要があるため、仮想キーボードが開いているか閉じているかを監視することができないため、ボタンの位置が変化する可能性があります。目的の効果を実現するには、フォーカス イベントとブラー イベントをフォーム要素にバインドすることによってのみ変更できます。こうしてバラバラは再び完成した。
完了後、テストを開始したところ、入力要素にフォーカスがあるときに送信ボタンをクリックしても機能しないことがわかりました。 ! !また注文します、わかりました。 。 。
理由は、blurイベントによりclickイベントが実行できなくなるからです。 。 。
よし、私は変わり続けます。
ブラーイベントはクリックイベントの実行を妨げますが、タッチイベントの実行は妨げませんので、クリックをタップに変更することを考えました。それは実際に動作します。二度クリックする必要はもうありません。
できました、私は誇らしげに微笑みます、とても賢いです。
balabalaはオンラインになりました。
オンラインにアクセスしてすぐに、提出できないことがわかりました。 。 。一定の確率でリクエストがキャンセルされることがあります。 。 。
g g g あらゆる種類の Google で理由が見つかりませんでした。質問はどこにありますか?クリックには問題ありませんが、タップに問題があるため、タッチイベントの実行順序を確認しました。これはおおよそ次のとおりです
そこで、mouseupをテストしたところ問題はなく、touchendも問題があり、タップしました。はい、タップ イベントを使用すると、ハンドラーは 100 ミリ秒遅れますが、$('*Form').submit() は再び正常に送信できるようになります。サブミット実行のタイミングに問題があることが判明しました。
デバッグを続けて、歴史に残されたバグや落とし穴を見つけてください。
最終的に に到達しました。ボタン クリック イベントが実行されると、ハッシュをリクエストする前に submit が実行され、リクエストはまだ戻ってません、ハッシュの変更により同期送信がキャンセルされました、、、送信実行前に諸事情によりハッシュが変更されていればスムーズに送信できます
ということで、put に変更します。最終的には問題ありません。