クリックイベントでモーダル背景を削除しようとしています

3D-kreativ

私は、最終的に半分透明な背景を持つモーダルポップアップウィンドウになるいくつかのコードをテストしています。問題は.modal-overlay、ポップアップウィンドウに表示する閉じるボタンだけでなく、背景をクリックして背景クラスを削除したいということです。背景をクリックしたときに何かが発生するかどうかを確認する2つの方法をテストしましたが、何も起こりません。私は何を間違えたり、逃したりしましたか?

jQuery:

var appendthis =  ("<div class='modal-overlay modal-close'></div>");

$('#open-popup').click(function(e) {
    e.preventDefault();
    $("body").append(appendthis);
    $(".modal-overlay").fadeTo(500, 0.7);

});

$(".modal-overlay").on("click", function(){
    alert("Closing!?");
});

$(".modal-close, .modal-overlay").click(function() {
    alert("Closing?");
    $(".modal-overlay").fadeOut(500, function() {
        $(".modal-overlay").remove();
    });
});

CSS:

.modal-overlay {
    opacity: 0;
    filter: alpha(opacity=0);
    position: fixed;
    top: 0;
    left: 0;
    z-index: 900;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7) !important;
}
アルバロモントロ

上記のコードの問題は、その時点で存在しない要素のクリックイベントハンドラーを定義していることです。また、後で作成するとき、その要素にはクリックハンドラーがアタッチされていません。

必要なことを実現するには、委任されたイベントを使用する必要があります(詳細については、jQueryのドキュメントを参照してください)。これにより、クリックイベントハンドラーが作成時に要素にアタッチされます。

$(document).on("click", "selector-for-element-created-later", function(e) { ... });

あなたのコードに適用すると、次のようになります(私はをに置き換えalertましたconfirm):

var appendthis =  ("<div class='modal-overlay modal-close'></div>");

$('#open-popup').click(function(e) {
    e.preventDefault();
    $("body").append(appendthis);
    $(".modal-overlay").fadeTo(500, 0.7);
    
});

$(document).on("click", ".modal-close, .modal-overlay", function() {
    if (confirm("Closing?")) {
        $(".modal-overlay").fadeOut(500, function() {
            $(".modal-overlay").remove();
        });
    }
});

/* 
// or this

$(document).on("click", ".modal-overlay", function(){
    alert("Closing!?");
});
*/
.modal-overlay {
    opacity: 0;
    filter: alpha(opacity=0);
    position: fixed;
    top: 0;
    left: 0;
    z-index: 900;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7) !important;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<button id="open-popup">Open Popup</button>

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

クリックイベントで画像タブギャラリーを作成しようとしています

分類Dev

特性を使用してモデルの「更新」イベントにフックしようとしています

分類Dev

実際にダブルクリックイベントをトリガーしようとしたときに、シングルクリックイベントのダブル実行を防ぐにはどうすればよいですか?

分類Dev

ブーストメモリマップファイル内にベクトル値を使用してC ++マップを作成しようとしています

分類Dev

インストールしようとしています[モジュラールーター]をクリックし、カーネルモジュールとしてインストールするには/ usr / src / linuxが必要です

分類Dev

インストールしようとしています[モジュラールーター]をクリックし、カーネルモジュールとしてインストールするには/ usr / src / linuxが必要です

分類Dev

Pythonでリンクリストをクイックソートしようとしています

分類Dev

モーダル内でクリックイベントを開始または終了した場合に、単純なReactモーダルが閉じられないようにするにはどうすればよいですか?

分類Dev

ユーザーがブートストラップモーダルダイアログの外側をクリックしたときにイベントをキャッチするにはどうすればよいですか?

分類Dev

jsで「クリック」イベントをトリガーしようとしても機能しません

分類Dev

jQueryを使用してダブルクリックでシングルクリックと同じイベントをトリガーするにはどうすればよいですか?

分類Dev

ボタンクリック時にモーダルポップアップでPDFファイルを読み取ろうとしています

分類Dev

OSX10.13でusr / localフォルダーをクリーンアップしようとしています

分類Dev

WPエンジンサイトをローカルで実行しようとしていますが、リダイレクトし続けます

分類Dev

javascriptを使用して特定のスクロール高さでイベントをトリガーしようとしています

分類Dev

ユーザーがForm.ShowDialog()で作成されたモーダルダイアログをクリックしようとしたときにスローされるイベントはありますか?

分類Dev

デスクトップはホームフォルダをミラーリングしていて、フォルダを削除するとそれらが完全に削除されます。復元するにはどうすればよいですか?(ubuntu)

分類Dev

クリックイベントで使用するとモーダルが機能しない

分類Dev

ブートストラップまたはjqueryを使用してボタンクリック時にポップアップ/モーダルとして部分ビューを表示するにはどうすればよいですか?

分類Dev

背景をクリックしたときにモーダルが閉じないようにする[Vuejs]

分類Dev

データベース内の特定のオブジェクトをフィルタリングして削除するにはどうすればよいですか?| フロントとして反応し、バック/ APIとしてレール

分類Dev

オブジェクトを選択してjsでクリックイベントを追加しようとするとエラーが発生します

分類Dev

オブジェクトを選択してjsでクリックイベントを追加しようとするとエラーが発生します

分類Dev

イベントの完全なリストを見つけようとしています(「クリック」など)

分類Dev

AngularJSでブートストラップモーダルを使用すると、イベントバブリングが機能しないようです

分類Dev

PHPでリモートイメージをダウンロードしようとしています

分類Dev

モーダル内のボタンをクリックしてjQueryまたはjavascriptを使用してブートストラップモーダルのデータ値を取得するにはどうすればよいですか?

分類Dev

月間降雨ベクトルの日時インデックスを作成しようとしています

分類Dev

この単一行ループでYをインクリメントしようとしています

Related 関連記事

  1. 1

    クリックイベントで画像タブギャラリーを作成しようとしています

  2. 2

    特性を使用してモデルの「更新」イベントにフックしようとしています

  3. 3

    実際にダブルクリックイベントをトリガーしようとしたときに、シングルクリックイベントのダブル実行を防ぐにはどうすればよいですか?

  4. 4

    ブーストメモリマップファイル内にベクトル値を使用してC ++マップを作成しようとしています

  5. 5

    インストールしようとしています[モジュラールーター]をクリックし、カーネルモジュールとしてインストールするには/ usr / src / linuxが必要です

  6. 6

    インストールしようとしています[モジュラールーター]をクリックし、カーネルモジュールとしてインストールするには/ usr / src / linuxが必要です

  7. 7

    Pythonでリンクリストをクイックソートしようとしています

  8. 8

    モーダル内でクリックイベントを開始または終了した場合に、単純なReactモーダルが閉じられないようにするにはどうすればよいですか?

  9. 9

    ユーザーがブートストラップモーダルダイアログの外側をクリックしたときにイベントをキャッチするにはどうすればよいですか?

  10. 10

    jsで「クリック」イベントをトリガーしようとしても機能しません

  11. 11

    jQueryを使用してダブルクリックでシングルクリックと同じイベントをトリガーするにはどうすればよいですか?

  12. 12

    ボタンクリック時にモーダルポップアップでPDFファイルを読み取ろうとしています

  13. 13

    OSX10.13でusr / localフォルダーをクリーンアップしようとしています

  14. 14

    WPエンジンサイトをローカルで実行しようとしていますが、リダイレクトし続けます

  15. 15

    javascriptを使用して特定のスクロール高さでイベントをトリガーしようとしています

  16. 16

    ユーザーがForm.ShowDialog()で作成されたモーダルダイアログをクリックしようとしたときにスローされるイベントはありますか?

  17. 17

    デスクトップはホームフォルダをミラーリングしていて、フォルダを削除するとそれらが完全に削除されます。復元するにはどうすればよいですか?(ubuntu)

  18. 18

    クリックイベントで使用するとモーダルが機能しない

  19. 19

    ブートストラップまたはjqueryを使用してボタンクリック時にポップアップ/モーダルとして部分ビューを表示するにはどうすればよいですか?

  20. 20

    背景をクリックしたときにモーダルが閉じないようにする[Vuejs]

  21. 21

    データベース内の特定のオブジェクトをフィルタリングして削除するにはどうすればよいですか?| フロントとして反応し、バック/ APIとしてレール

  22. 22

    オブジェクトを選択してjsでクリックイベントを追加しようとするとエラーが発生します

  23. 23

    オブジェクトを選択してjsでクリックイベントを追加しようとするとエラーが発生します

  24. 24

    イベントの完全なリストを見つけようとしています(「クリック」など)

  25. 25

    AngularJSでブートストラップモーダルを使用すると、イベントバブリングが機能しないようです

  26. 26

    PHPでリモートイメージをダウンロードしようとしています

  27. 27

    モーダル内のボタンをクリックしてjQueryまたはjavascriptを使用してブートストラップモーダルのデータ値を取得するにはどうすればよいですか?

  28. 28

    月間降雨ベクトルの日時インデックスを作成しようとしています

  29. 29

    この単一行ループでYをインクリメントしようとしています

ホットタグ

アーカイブ