Повторить условия без перезагрузки страницы

У меня есть этот код здесь, который, кажется, отлично работает только после перезагрузки страницы. Как я могу сделать это несколько раз, не перезагружая страницу?

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'); }); 
 }
});
1 ответ

Не уверен, что вы подразумеваете под:

Как я могу сделать это несколько раз, не перезагружая страницу?

Предполагая, что ваш код выполняется до того, как файл 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));

Вы также можете добавить свою функцию "set" в cookie. Разверните updateLanguages если необходимо, с функциями или параметрами конфигурации.

licensed under cc by-sa 3.0 with attribution.