1

我正在使用 jQuery 工具。我想做的是:一旦用户单击文本链接,验证是否存在 cookie;如果没有,请打开一个模式叠加层,要求他选择一个区域;一旦他这样做,将其存储在 cookie 中,然后打开主叠加层。

如果 cookie 已经存在,则直接打开主叠加层。

我到目前为止是这样的:

$(function() {

// if the function argument is given to overlay,
// it is assumed to be the onBeforeLoad event listener
$("a[rel]").live('click', function (e){
    e.preventDefault();

    var el = $(this);
    var target = el.attr('rel');
    $(target).appendTo('body');

    $(this).overlay({
    mask: {color:'black'},
    effect: 'apple',
    api: true,

    onBeforeLoad: function() {

// grab wrapper element inside content
        var wrap = this.getOverlay().find(".contentWrap");

        // load the page specified in the trigger
        wrap.load(this.getTrigger().attr("href"));

    },
    load:true,
    closeOnClick: false

     });
});
});

我知道在某些时候,我应该有这样的事情:

        if ($.cookie('myRegion') == null){ 
            $("#selectRegion").overlay().load();
        }

但我不确定它适合哪里。任何人都知道如何实现这一目标?

4

1 回答 1

0

首先,确认一下,确保您正在加载jQuery Cookie

这似乎是一个简单的解决方案,但基本上它会检查 cookie,如果不存在则创建对话框,然后关闭对话框或保存选择,具体取决于是否单击了背景或按钮。

为您的 jQuery 尝试这样的操作:

$(document).ready(function(){
    if($.cookie("myRegion") == null){
        $("#modal-background").toggleClass("active");
        $("#modal-content").toggleClass("active");
    }

    $("#modal-background").click(function(){
        $("#modal-background").toggleClass("active");
        $("#modal-content").toggleClass("active");
    });
    $("#modal-save").click(function(){
        $.cookie("myRegion", $("region").val());
        $("#modal-background").toggleClass("active");
        $("#modal-content").toggleClass("active");
    });
});​

所有相关的 HTML 和 CSS 都可以在这个小提琴中找到:http: //jsfiddle.net/9HrwN/2/

于 2012-06-18T19:50:36.967 回答