jquery Uncaught SyntaxError:意外的令牌)

时间:2012-10-27 22:47:13

标签: javascript jquery-ui jquery jquery-plugins

  • 我的代码中出现了jquery错误...你们能告诉我什么吗? 单击美国红色时的原因 按钮在此链接中您将看到此错误

http://jsfiddle.net/SSMX4/88/embedded/result/

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 个答案:

答案 0 :(得分:2)

您的代码中有两个名为checkCookie的函数。第一个看起来像这里发布的代码。第二个不同之处在于它的结束。

第一个结束于:

}

第二个结束于:

});//]]>

//]]>是CDATA代码的结尾,因此应该在那里,但);不应该在那里。