Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.05.2017, 17:59
Интересующийся
Отправить личное сообщение для TyronNIKO Посмотреть профиль Найти все сообщения от TyronNIKO
 
Регистрация: 16.05.2017
Сообщений: 10

Список при смене языка перестал изменятся
Добрый день! Дали в работу сайт с JS сгенерированом на CofeeScript 1.9.2
Я в JS не силен, сразу говорю.
После изменения структуры расположения страниц в каталоге перестал меняться язык выпадающего меню (в остальном никаких проблем).
Сам код исполняющий скрипт
dropStreetsRus =[большой массив адресов]

  changeLanguage = function() {
    var OthBtn, SafBtn, changeDropDowns, href, setAttr;
    SafBtn = $("#Safari-lang");
    OthBtn = $("#Other-lang");
    href = $(location).attr('href');
    $.getScript("/assets/js/min/detect-min.js", function() {
      var user;
      user = detect.parse(navigator.userAgent);
      if (user.browser.family === 'Safari') {
        $('#Safari-lang').addClass('is-active');
        return $('.experience').addClass('is-Safari');
      } else {
        return $('#Other-lang').addClass('is-active');
      }
    });
    setAttr = function(href) {
      SafBtn.attr('href', href);
      return OthBtn.attr('href', href);
    };
    changeDropDowns = function() {
      dropStreets = dropStreetsRus;
      dropTrafficGeneral = dropTrafficGeneralRus;
      dropTrafficK1 = dropTrafficK1Rus;
      return dropTrafficK2 = dropTrafficK2Rus;
    };
    if (href.indexOf('/rus/') > -1) {
      setAttr(href.replace('/rus', ''));
    } else {
      setAttr(href.splice(href.indexOf('/', 8), 0, '/rus'));
    }
    update_list('#dropdown-group-street', dropStreets);	
  };

  update_list = function(identificator, updater) {
    $(identificator + ' ul li').remove();
    $.each(updater, function(index, updaterValue) {
      $(identificator + ' ul').append('<li class = "someClass">' + updaterValue + '</li>');
    });
  };

  $(document).on('click', '.btn-group .dropdown-menu li', function(e) {
    var btn, btnGroup;
    e.preventDefault();
    btnGroup = $(this).parents('.btn-group');
    if (!($(this).hasClass('disable'))) {
      btn = btnGroup.find('.btn-dropdown');
      btn.addClass('dropdown-selected');
      btn.text($(this).text());
      btn.append('<span class = "caret"> </span>');
      btn.removeClass('dropdown-alert');
      if (btnGroup.is('#dropdown-group-street')) {
        update_list('#dropdown-group-house', dropHouses[$('#dropdown-group-street li').index(this)]);
    }
  });


Выделил из файлы-скрипта основные моменты, которые, на мой взгляд, имеют отношение к этой функции.
Если чего то не хватает - могу пошуршать код.
Ответить с цитированием
  #2 (permalink)  
Старый 17.05.2017, 09:15
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,726

Находясь на странице сайта открой консоль, посмотри какие возникли ошибки.
В хроме клавиша F12 (вкладка «console»).
Ответить с цитированием
  #3 (permalink)  
Старый 17.05.2017, 11:53
Интересующийся
Отправить личное сообщение для TyronNIKO Посмотреть профиль Найти все сообщения от TyronNIKO
 
Регистрация: 16.05.2017
Сообщений: 10

ошибок нет... просто скрипт перестал выполнятся. а ошибки я найти не могу
Ответить с цитированием
  #4 (permalink)  
Старый 17.05.2017, 12:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от TyronNIKO
После изменения структуры расположения страниц
возможно дело в строках 28 - 32
Ответить с цитированием
  #5 (permalink)  
Старый 17.05.2017, 17:03
Интересующийся
Отправить личное сообщение для TyronNIKO Посмотреть профиль Найти все сообщения от TyronNIKO
 
Регистрация: 16.05.2017
Сообщений: 10

Сообщение от рони Посмотреть сообщение
возможно дело в строках 28 - 32
Эта функция меняет каталог с русской версией сайта на обычную.

setAttr(href.splice(href.indexOf('/', 8), 0, '/rus'));

единственное не понятно за что отвечает 8 и 0 тут?

Раньше страница со скриптом выводилась через /rus/internet.php
теперь вложенность файла поменялась на 2 каталога /rus/content/services/internet.php
а обычная версия находится в /content/services/internet.php
Тоесть скрипт срабатывает, но не меняет язык как указанно в 23 строке dropStreets = dropStreetsRus;

Последний раз редактировалось TyronNIKO, 17.05.2017 в 17:09.
Ответить с цитированием
  #6 (permalink)  
Старый 17.05.2017, 17:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от TyronNIKO
что отвечает 8
найти индекс наклонной черты в href , которая встретится после 8 символа ,
Сообщение от TyronNIKO
и 0 тут
ничего не удалять, и вставить в это место
Сообщение от TyronNIKO
'/rus'
-- новый url отправить в функцию setAttr
Ответить с цитированием
  #7 (permalink)  
Старый 17.05.2017, 17:28
Интересующийся
Отправить личное сообщение для TyronNIKO Посмотреть профиль Найти все сообщения от TyronNIKO
 
Регистрация: 16.05.2017
Сообщений: 10

Сообщение от рони Посмотреть сообщение
найти индекс наклонной черты в href , которая встретится после 8 символа , ничего не удалять, и вставить в это место -- новый url отправить в функцию setAttr
Значит тут все правильно. Просто переключатель языка на сайте.
Проблема то в том что и на обычной и на русской версии сайта скрипт выполняется без ошибок, но не переводит массив dropStreets = dropStreetsRus;
И как этого добиться без изменения самого скрипта я не знаю...
Ответить с цитированием
  #8 (permalink)  
Старый 17.05.2017, 17:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от TyronNIKO
Значит тут все правильно.
это вам виднее
но попробуйте заменить '/rus' на '/rus/content'
Ответить с цитированием
  #9 (permalink)  
Старый 17.05.2017, 17:54
Интересующийся
Отправить личное сообщение для TyronNIKO Посмотреть профиль Найти все сообщения от TyronNIKO
 
Регистрация: 16.05.2017
Сообщений: 10

Сообщение от рони Посмотреть сообщение
это вам виднее
но попробуйте заменить '/rus' на '/rus/content'
Это я уже пробовал. Просто добавляет в адрес, при переключении языка, /rus/content и еще сверху докидывает каталог самого файла.
Получается /rus/content/сontent/services/internet.php

Может попробовать как-то привязать смену dropStreets на dropStreetsRus, например, при смене lang="ru" в шапке сайта?
Ответить с цитированием
  #10 (permalink)  
Старый 18.05.2017, 19:08
Интересующийся
Отправить личное сообщение для TyronNIKO Посмотреть профиль Найти все сообщения от TyronNIKO
 
Регистрация: 16.05.2017
Сообщений: 10

Все еще актуально. Могу дать полный скрипт. Может я не туда смотрю?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оставить выделение при смене фокуса DZHETIGAPA Events/DOM/Window 5 01.02.2018 20:11
изменение значения input при смене значения select galart jQuery 4 30.01.2015 19:39
Прерывается выполнение функции при смене аргумента mikser763 Общие вопросы Javascript 1 11.10.2010 16:36
Как сделать плавное изменение размеров контейнеров при смене AJAX-содержимого Nominus umbra Общие вопросы Javascript 3 27.01.2010 13:32
При первом клике список не раскрывается. lancer Элементы интерфейса 1 30.03.2008 17:24