レッスンに戻る

要素内のリンクをキャッチする

重要性: 5

id="contents" の要素内のすべてのリンクが、ユーザに本当に離れたいかを尋ねるようにしてください。そして、答えが No の場合は遷移しません。

このようになります:

詳細:

  • 要素内の HTML はロードされているかもしれないし、いつでも動的に再作成されるかもしれません。そのため、すべてのリンクを見つけてハンドラを配置することはできません。イベントの移譲を使ってください。
  • コンテンツはネストされたタグを持っている場合があります。リンクも同じです。 <a href=".."><i>...</i></a>.

タスクのためのサンドボックスを開く

これはイベント移譲パターンを大いに活用してものです。

実際には、尋ねる代わりに、訪問者がどこから離れたかに関する情報を保存する "ログ"要求をサーバーに送信できます。 または、コンテンツを読み込んでページに表示することもできます(許可されている場合)。

私たちに必要なことは、contents.onclick をキャッチし、ユーザの確認するために confirm を使うことです。良いアイデアは URL に対して link.href の代わりに、link.getAttribute('href') を使うことです。詳細は解決策を見てください。

サンドボックスで解答を開く