2014-11-14 89 views
0

我已經研究了幾個Q &作爲和關於這個問題的文章,似乎我在這裏犯了一個錯誤。我已將這些代碼包含在$(document).ready javascript中,並將其加載到index.html的末尾。使用的兩個ID都正確地插入到HTML中,然後查看Jquery.cookies文檔,我沒有看到我忘記了什麼。是否應該在我的HTML開頭加載cookie功能?Jquery.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> 

JS文件,其中包括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() { 
     $.cookie('default_page', en_page, { expires: 999 }); 
    }); 

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

    }); 
+0

您是否嘗試過使用調試器?控制檯中的任何錯誤? – 2014-11-17 09:55:57

+0

是的,但我找到了解決辦法,請看下面的答案。 – 2014-11-18 16:27:38

回答

0

好夥計什麼工作對我來說是隔離此代碼,最後加載它,當它的工作,我意識到,也代碼被添加URL時,我已經在主頁上,因此無法找到正確的HTML網頁...使工作的最終代碼如下(基本上是相同的,在我的if語句中移除該網址,沒有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 }); 
}); 

});

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'); 
    }); 
}); 
+0

它仍然不起作用,它給我的錯誤是「未捕獲的類型錯誤:undefined不是下面一行中的函數...... ??? if($ .cookie('default_page')!= null){ '和我的代碼是完全一樣的,你上面建議的那個... – 2014-11-18 15:48:47

+0

我正在測試將它自己的代碼隔離,而不是把它放到我的$(document).ready main.js文件中 – 2014-11-18 15:53:23

+0

你加載了jquery cookie是否正確?我在測試時沒有發現任何問題。 – osk2 2014-11-18 16:03:10