Jquery.cookie插件的问题

时间:2014-11-14 20:23:10

标签: javascript jquery html cookies

我已经研究了几个Q& As和关于这个主题的文章,似乎我在这里犯了一个错误。我已将此代码包含在我的$(document).ready javascript中,并在index.html的末尾加载此代码。所使用的两个ID都正确地插入到HTML上,并查看了Jquery.cookies文档,我没有看到我忘记了什么。我应该在HTML的开头加载cookie函数吗?

HTML,其中按钮切换到正确的语言HTML文件...

<div class="col-xs-12 col-sm-6 col-md-6"><br>
        <h1>Comment aimeriez vous être servi?</h1><a href="fr.html">
          <div id="set_fr_button" class="btn btn-primary btn-lg text-center">En Français</div></a>
      </div>
      <div class="col-xs-12 col-sm-6 col-md-6"><br>
        <h1>How would you liked to be served?</h1><a href="en.html">
          <div id="set_en_button" class="btn btn-primary btn-lg text-center">In English</div></a>
      </div>

包含cookie代码的JS文件......

        $(function () {

    var url = 'mannydesigns.co';
    var en_page = 'en.html';
    var fr_page = 'fr.html';

    if ($.cookie('default_page') != null) {
        if (window.location.href != url + '/' + $.cookie('default_page')) {
            window.location.href = url + '/' + $.cookie('default_page');
        }
    }

    $('#set_en_button').click(function () {
        $.cookie('default_page', en_page, { expires: 999 });
    });

    $('#set_fr_button').click(function () {
        $.cookie('default_page', fr_page, { expires: 999 });
    });

    });

2 个答案:

答案 0 :(得分:0)

不确定您遇到了什么问题,但我发现您的代码存在问题。

首先,您在链接中不需要<div>

<div class="col-xs-12 col-sm-6 col-md-6"><br>
    <h1>Comment aimeriez vous être servi?</h1>
    <a href="fr.html" id="set_fr_button" class="btn btn-primary btn-lg text-center">En Français</a>
</div>
<div class="col-xs-12 col-sm-6 col-md-6"><br>
    <h1>How would you liked to be served?</h1>
    <a href="en.html" id="set_en_button" class="btn btn-primary btn-lg text-center">In English</a>
</div>

其次,您的点击事件功能永远不会有效,您应该使用e.preventDefault();来阻止在设置Cookie之前加载新页面。

$(function () {
    var url = 'mannydesigns.co';
    var en_page = 'en.html';
    var fr_page = 'fr.html';

    if ($.cookie('default_page') != null) {
        if (window.location.href != url + '/' + $.cookie('default_page')) {
            window.location.href = url + '/' + $.cookie('default_page');
        }
    }

    $('#set_en_button').click(function (e) {
        e.preventDefault();
        $.cookie('default_page', en_page, { expires: 999 });
        window.location.href = $(this).attr('href');
    });

    $('#set_fr_button').click(function (e) {
        e.preventDefault();
        $.cookie('default_page', fr_page, { expires: 999 });
        window.location.href = $(this).attr('href');
    });
});

答案 1 :(得分:0)

那些对我有用的人是隔离这段代码并最后加载它并且当它工作时我意识到代码在我已经在主页上时添加了URL而因此无法找到正确的HTML页面...所以最终的代码是如下(基本相同,删除我的if语句中的url,没有e.preventdefault,因为它不需要):

  $(function () {

var url = 'mannydesigns.co';
var en_page = 'en.html';
var fr_page = 'fr.html';

if ($.cookie('default_page') != null) {
    if (window.location.href != '/' + $.cookie('default_page')) {
        window.location.href = '/' + $.cookie('default_page');
    }
}

$('#set_en_button').click(function () {
    $.cookie('default_page', en_page, { expires: 999 });
});

$('#set_fr_button').click(function () {
    $.cookie('default_page', fr_page, { expires: 999 });
});

});