0

jquery modal と cookie でページを作成しようとしています。モーダルはうまく機能しますが、クッキーを設定するのに問題があります。私は次のことを達成したいと思います:

  • ホームページ読み込み時にモーダルボックスを表示(ポップアップ)
  • 閉じるボタンをクリックするとポップアップが閉じ、ユーザーがページに戻ったときにモーダル ボックスが表示されません。
  • ポップアップは 7 日後に再び表示されます。

ご意見をお聞かせください!

        // Close modal when click on close button 
    $close.click(function(e){
    e.preventDefault();
    method.close();
    });

       return method;
    }());


        // querying the document
        $(document).ready(function(){

        if (document.cookie.indexOf('$close.click=true') == -1){
            var sevenDays = 1000*60*60*24*7;
            var expires = new Date((new Date()).valueOf() + sevenDays);
            document.cookie = "$close.click=true;expires=" +  expires.toUTCString();
            };

            // Append data via Ajax
            $.get('url', function(data){
                modal.open({content: data});
            });

        });
4

1 に答える 1

1

Cookieを使用する必要がある場合は、このプラグインを使用します https://github.com/carhartl/jquery-cookie

以下のモデル構造を使用できます

var modal = (function(){
        var 
        method = {},
        $overlay,
        $modal,
        $content,
        $close;

        // Center the modal in the viewport
        method.setPosition = function () {
            // Set Postion
        };

        // Open the modal, reveal overlay 
        method.open = function (settings) {
            if($.cookie('NameOfCookie'))
            {
                // We dont need show popup
                return
            }else{
                // Open Modal               
                $.cookie('NameOfCookie', 'created', { expires: 7 });
                method.GenerateModalPopup();
                method.setPosition()
            }
        };

        // Close the modal and overlay, then unbind the resize event when modal is closed
        method.close = function () { 
            // Close Modal
        };

        method.GenerateModalPopup=function(){
            // Generate the HTML and add it to the document

        };

        // Open popup window
        method.open();

   return method;
}());
于 2012-09-22T20:03:53.950 に答える