UpdatePanel 更新への jQuery イベント バインディングの適応
UpdatePanels 内に jQuery イベント処理を組み込むと、ページの部分更新中に要素が置換されるため課題が発生します.
初期値に $(document).ready を使用結合が不十分になります。問題に記載されているように、更新後は「UpdatePanel 内では実行されず、マウスオーバー効果が機能しなくなります」。
推奨アプローチ: PageRequestManager を利用する
この問題を解決するには、UpdatePanel を更新するたびにイベントを再度サブスクライブすることをお勧めします。 PageRequestManager を通じてアクセスされる ASP.NET Ajax ライフサイクルがソリューションを提供します。
次のコードは、このアプローチを示しています。
$(document).ready(function() { // bind jQuery events initially }); var prm = Sys.WebForms.PageRequestManager.getInstance(); prm.add_endRequest(function() { // re-bind jQuery events });
UpdatePanel が存在する場合にアクセス可能な PageRequestManager は、endRequest を提供します。更新が完了するとトリガーされるイベント。このイベントにより、jQuery イベントの再バインドが可能になります。
代替オプション: jQuery .on()
状況に応じて、jQuery の .on() メソッドが提供される場合があります。より効率的な代替手段。 .on() を使用すると、要素のコンテナへのバインドが可能になるため、更新のたびに再バインドする必要がなくなります。ただし、このアプローチの制限を考慮し、特定のニーズに適合するかどうかを確認することが重要です。
以上がASP.NET UpdatePanel の更新後に jQuery イベント バインディングを維持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。