0

Web ページを持っていて、リンクをクリックすると「このアイテムをレビューする」ページが開きます。この 2 ページ目では、esc キーをクリックして前のページに戻ることができます。

2 ページ目には、写真を選択するためのポップアップ フォームを作成するボタンがあります。このポップアップ フォームで、esc をクリックしてメインの 2 番目のページに戻ることができます。

問題は、ポップアップ フォームで esc をクリックすると、ポップアップ フォームが閉じてから最初のページに戻ることです。つまり、esc を 2 回クリックしたようなものです。

私はイベントの伝播を認識しており、e.preventDefault(); を呼び出してみました。コードのこのセクションの前ですが、動作していないようです。

私がここに欠けているものはありますか?

4

1 に答える 1

3

探しているのは、オブジェクトのstopPropagation()メソッドです。Eventこれは jquery イベント ハンドラーで呼び出すことができますが、通常の DOM/(純粋な js) です。したがって、jQuery では次のようになります。

$('#modal').on('keyup', function(e) {
  if (e.which === 27) {
    e.stopPropagation();
    // close the window
  }
});

これにより、他のハンドラーが現在同じイベントに戻っている場所にイベントがページをバブルアップするのを防ぎます。

于 2012-12-24T03:11:11.490 に答える