2012-10-27 77 views
-3
  • 我得到一個jQuery的錯誤在我的代碼......你們可以告訴我什麼是 這樣做的原因,當你點擊美國紅色 按鈕在這個環節你會看到這個錯誤

http://jsfiddle.net/SSMX4/88/embedded/result/jQuery的未捕獲的SyntaxError:意外的標記)

function checkCookie(){ 
     var cookie_locale = readCookie('desired-locale'); 
     var show_blip_count = readCookie('show_blip_count'); 
     var tesla_locale = 'en_US'; //default to US 
     var path = window.location.pathname; 
     // debug.log("path = " + path); 
     var parsed_url = parseURL(window.location.href); 
     var path_array = parsed_url.segments; 
     var path_length = path_array.length 
     var locale_path_index = -1; 
     var locale_in_path = false; 
     var locales = ['en_AT', 'en_AU', 'en_BE', 'en_CA', 
         'en_CH', 'de_DE', 'en_DK', 'en_GB', 
         'en_HK', 'en_EU', 'jp', 'nl_NL', 
         'en_US', 'it_IT', 'fr_FR', 'no_NO'] 
     // see if we are on a locale path 
     $.each(locales, function(index, value){ 
      locale_path_index = $.inArray(value, path_array); 
      if (locale_path_index != -1) { 
       tesla_locale = value == 'jp' ? 'ja_JP':value; 
       locale_in_path = true; 
      } 
     }); 
     // debug.log('tesla_locale = ' + tesla_locale); 
     cookie_locale = (cookie_locale == null || cookie_locale == 'null') ? false:cookie_locale; 
     // Only do the js redirect on the static homepage. 
     if ((path_length == 1) && (locale_in_path || path == '/')) { 
      debug.log("path in redirect section = " + path); 
      if (cookie_locale && (cookie_locale != tesla_locale)) { 
       // debug.log('Redirecting to cookie_locale...'); 
       var path_base = ''; 
       switch (cookie_locale){ 
        case 'en_US': 
         path_base = path_length > 1 ? path_base:'/';      
         break; 
        case 'ja_JP': 
         path_base = '/jp' 
         break; 
        default: 
         path_base = '/' + cookie_locale; 
       } 
       path_array = locale_in_path != -1 ? path_array.slice(locale_in_path):path_array; 
       path_array.unshift(path_base); 
       window.location.href = path_array.join('/'); 
      } 
     } 
     // only do the ajax call if we don't have a cookie 
     if (!cookie_locale) { 
      // debug.log('doing the cookie check for locale...') 
      cookie_locale = 'null'; 
      var get_data = {cookie:cookie_locale, page:path, t_locale:tesla_locale}; 
      var query_country_string = parsed_url.query != '' ? parsed_url.query.split('='):false; 
      var query_country = query_country_string ? (query_country_string.slice(0,1) == '?country' ? query_country_string.slice(-1):false):false; 
      if (query_country) { 
       get_data.query_country = query_country; 
      } 
      $.ajax({ 
       url:'/check_locale', 
       data:get_data, 
       cache: false, 
       dataType: "json", 
       success: function(data){ 
          var ip_locale = data.locale; 
          var market = data.market; 
          var new_locale_link = $('#locale_pop #locale_link'); 
          if (data.show_blip && show_blip_count < 3) { 
           setTimeout(function(){ 
            $('#locale_msg').text(data.locale_msg); 
            $('#locale_welcome').text(data.locale_welcome); 
            new_locale_link[0].href = data.new_path; 
            new_locale_link.text(data.locale_link); 
            new_locale_link.attr('rel', data.locale); 
            if (!new_locale_link.hasClass(data.locale)) { 
             new_locale_link.addClass(data.locale); 
            } 
            $('#locale_pop').slideDown('slow', function(){ 
             var hide_blip = setTimeout(function(){ 
              $('#locale_pop').slideUp('slow', function(){ 
                 var show_blip_count = readCookie('show_blip_count'); 
                 if (!show_blip_count) { 
                  createCookie('show_blip_count',1,360); 
                 } 
                 else if (show_blip_count < 3) { 
                  var b_count = show_blip_count; 
                  b_count ++; 
                  eraseCookie('show_blip_count'); 
                  createCookie('show_blip_count',b_count,360); 
                 } 
               }); 
              },10000); 
             $('#locale_pop').hover(function(){ 
              clearTimeout(hide_blip); 
              },function(){ 
               setTimeout(function(){$('#locale_pop').slideUp();},10000); 
              }); 
            }); 
           },1000); 
          } 
         } 
      }); 
    } 
} 
+1

您在JavaScript代碼末尾缺少右括號'}'。見http://jsfiddle.net/SSMX4/90/ – Musa

+0

感謝您的回覆...但餅乾工作不類似於此... http://www.teslamotors.com/fr_FR/ – js00831

回答

2

您的代號爲checkCookie兩種功能。第一個看起來像在這裏發佈的代碼。第二個不同之處在於它如何結束。

第一個結束與:

} 

第二個結尾:

});//]]> 

//]]>是CDATA標籤的端部,使得應該有,但);應不在那裏。

+0

他的小提琴設置到'onLoad',所以它包裹在'$(window).load(function(){/ * code * /});'這就是結尾'});'來自 – Musa

+0

感謝您的回覆......但餅乾工作不類似這樣... teslamotors.com/fr_FR – js00831

+0

@Musa:在這種情況下,第二個'checkCookie'只是缺少結束括號。 – Guffa

相關問題