用JavaScript隐藏弹出窗口

时间:2019-12-19 18:21:07

标签: javascript php

我有此脚本可在页面加载时显示弹出窗口:

$(function ()
{
    var overlay = $('<div id="overlay"></div>');
    overlay.show();
    overlay.appendTo(document.body);
    $('.popup').show();
    $('.close').click(function ()
    {
        $('.popup').hide();
        overlay.appendTo(document.body).remove();
        return false;
    });
    $('.x').click(function ()
    {
        $('.popup').hide();
        overlay.appendTo(document.body).remove();
        return false;
    });
});

它工作正常。现在,如果用户已经看到此页面,我被要求隐藏弹出窗口,因此我已附加到上面的代码

 function hidePopup()
 {
    $('.popup').hide();
    overlay.appendTo(document.body).remove();
    return false;
 }

但是当我从PHP脚本中调用它时,它不会显示弹出窗口,但是覆盖层仍然存在。

PHP代码如下:

session_start();
if (!isset($_SESSION['seenPopup']))
{
    echo "<div class='popup'>
                <div class='cnt223'>
                <img src='./images/close.ico' alt='quit' class='x' id='x' />
                    <div class='divScrollabile'>
                    <p><h3>
                POPUP TEXT HERE
                        <a href='' class='close'>Chiudi</a> 
                    </p>
                    </div>
                </div>
            </div>";
    $_SESSION['seenPopup'] = true;
}
else
{
    echo "<script type=\"text/javascript\">
                hidePopup();
                </script>";
}

1 个答案:

答案 0 :(得分:1)

您在overlay函数中没有hidePopup,因此将代码更改为此或类似的内容:

function hidePopup()
 {
    var overlay = $("#overlay");
    $('.popup').hide();
    overlay.appendTo(document.body).remove();
    return false;
 }