簡體   English   中英

如何通過單擊頁面來關閉覆蓋

[英]how to close an overlay by clicking the page

我有這樣的javascript文件:

var $overlay_wrapper;
var $overlay_panel;

function show_overlay() {
    if ( !$overlay_wrapper ) append_overlay();
    $overlay_wrapper.fadeIn(700);
    $overlay_panel.fadeIn(700);
}

function hide_overlay() {
    $overlay_wrapper.fadeOut(500);
    $overlay_panel.fadeOut(500);
}

function append_overlay() {
    $overlay_wrapper = $('<div id="overlay"></div>').appendTo( $('BODY') );
    $overlay_panel = $('<div id="overlay-panel"></div>').appendTo( $('BODY') );

    $overlay_panel.html( 
    '<p>This is the overlay content</p><a href="#" class="hide-overlay">X Close</a>' 
     );

    attach_overlay_events();
}

function attach_overlay_events() {
    $('A.hide-overlay', $overlay_panel).click( function(ev) {
        ev.preventDefault();
        hide_overlay();
    });
}

$(function() {
    $('A.show-overlay').click( function(ev) {
        ev.preventDefault();
        show_overlay();
    });
});

但是如果我點擊“ X Close”鏈接,則疊加層剛剛關閉。 如果我單擊透明的頁面(在內容之外),我還希望覆蓋層也關閉。 我該怎么辦? 請尋求幫助並提出建議。 謝謝。

將疊加層附加到主體時,請附加一個click事件監聽器:

$('#overlay').click(function(){
   $('.hide-overlay').trigger('click');
});

單擊此div時,將觸發“ x close”點擊處理程序;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM