0

我这里有这段代码,它似乎只有在我重新加载页面后才能正常工作。如何在不重新加载页面的情况下多次执行此操作?

jQuery(document).ready(function($) {

  var language_name = $.cookie('language_name');
     if (language_name == "English") {
       $('.selected').click(function() { $('.en').css('display','none');  });                 
     } 

     if (language_name == "Spanish") {
       $('.selected').click(function() { $('.es').css('display','none'); });    
     }
});
4

1 回答 1

0

不知道你的意思是:

如何在不重新加载页面的情况下多次执行此操作?

假设您的代码在设置 cookie 之前执行,您将必须重新加载页面才能看到它工作。如果是这样的话……

switch 语句可以帮助设置默认语言。

// @param ($): jQuery version x?
(function ($) {
    // 1. CONFIGURATION
    var cfg = {
        cookiename: 'language_name',
        selected: '.selected',
        lang: {
            en: '.en',
            es: '.es'
        },
        cssoptions: {
            'display': 'none'
        }
    },

    // 2. OBJECT
    updateLanguages = {
        init: function () {
            var languageName = $.cookie(cfg.cookiename),
                cfgLang = cfg.lang,
                lang;

            switch (languageName.toLowerCase()) {
                case 'spanish':
                    lang = cfgLang.es;
                    break;
                default:
                    lang = cfgLang.en;
                    break;
            }

            this.bindEvent(lang);
            //$.cookie(cfg.cookiename, lang);
        },

        bindEvent: function (lang) {
            $(cfg.selected).click(function () {
                $(lang).css(cfg.cssoptions);
            });
        }
    };

    // 3. DOM READY
    $(function () {
        updateLanguages.init();
    });
} (jQuery));

您也可以在此处添加您的 cookie 'set' 功能。updateLanguages如果需要,可以使用功能或配置选项进行扩展。

于 2013-10-26T01:03:08.237 回答