Size: a a a

jQuery — русскоговорящее общество

2021 March 24

BS

Bogdan Shilkin in jQuery — русскоговорящее общество
Есть условно список языков

<a class="translate" id="ru">Русский</a>
<a class="translate" id="en">English</a>
<a class="translate" id="es">Español</a>

нажатие на которое записывает значение localStorage, то есть обычная json переключалка языка с сохранением куков

============

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

нашел близкое решение, но в моем
https://overcoder.net/q/2262180/%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D1%8C-addclass-%D1%81-jquery-cookie-%D0%B8%D0%BB%D0%B8-%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%BC-%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D0%BB%D0%B8%D1%89%D0%B5%D0%BC

с ним я получаю такой пример:

$(document).ready(function () {
 var langkey = localStorage["uiLang"];
 if (langkey) {
   $(".translate").prop("id", langkey).closest(".translate").addClass("active");
 }
 $(".translate").on("change", function () {
   localStorage.setItem("langkey", $(this).prop("id"));
   return false;
 });
});

и
такой результат в html

<a class="translate active" id="ru">Русский</a>
<a class="translate active" id="ru">English</a>
<a class="translate active" id="ru">Español</a>

как так, в примере работает, а тут нет?
источник

A

Alex in jQuery — русскоговорящее общество
Bogdan Shilkin
Есть условно список языков

<a class="translate" id="ru">Русский</a>
<a class="translate" id="en">English</a>
<a class="translate" id="es">Español</a>

нажатие на которое записывает значение localStorage, то есть обычная json переключалка языка с сохранением куков

============

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

нашел близкое решение, но в моем
https://overcoder.net/q/2262180/%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D1%82%D1%8C-addclass-%D1%81-jquery-cookie-%D0%B8%D0%BB%D0%B8-%D0%BB%D0%BE%D0%BA%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%BC-%D1%85%D1%80%D0%B0%D0%BD%D0%B8%D0%BB%D0%B8%D1%89%D0%B5%D0%BC

с ним я получаю такой пример:

$(document).ready(function () {
 var langkey = localStorage["uiLang"];
 if (langkey) {
   $(".translate").prop("id", langkey).closest(".translate").addClass("active");
 }
 $(".translate").on("change", function () {
   localStorage.setItem("langkey", $(this).prop("id"));
   return false;
 });
});

и
такой результат в html

<a class="translate active" id="ru">Русский</a>
<a class="translate active" id="ru">English</a>
<a class="translate active" id="ru">Español</a>

как так, в примере работает, а тут нет?
читаем доку - https://api.jquery.com/prop/#prop2
источник

BS

Bogdan Shilkin in jQuery — русскоговорящее общество
не работает с id?
источник

A

Alex in jQuery — русскоговорящее общество
Bogdan Shilkin
не работает с id?
не понял вопроса
источник

A

Alex in jQuery — русскоговорящее общество
и вообще, что это за ерунда написана?
$(".translate").prop("id", langkey).closest(".translate").addClass("active");
источник

A

Alex in jQuery — русскоговорящее общество
Alex
и вообще, что это за ерунда написана?
$(".translate").prop("id", langkey).closest(".translate").addClass("active");
тут итак есть id, делаешь по нему selector -
$('#'+langkey).addClass("active")
источник

BS

Bogdan Shilkin in jQuery — русскоговорящее общество
Alex
тут итак есть id, делаешь по нему selector -
$('#'+langkey).addClass("active")
взято из примера, хз как правильно. такой вариант работает, но класс добавляет/переключает после обновления страницы
источник

A

Alex in jQuery — русскоговорящее общество
Bogdan Shilkin
взято из примера, хз как правильно. такой вариант работает, но класс добавляет/переключает после обновления страницы
ну так сюда тоже надо добавить
$(".translate").on("change"
источник

A

Alex in jQuery — русскоговорящее общество
Alex
ну так сюда тоже надо добавить
$(".translate").on("change"
$(this).addClass("active")
источник

BS

Bogdan Shilkin in jQuery — русскоговорящее общество
Alex
$(this).addClass("active")
а вот это пробовал, не заработало, в принципе можно сделать проще, когда страницы загружена, не обязательно обращаться к кукам и можно сделать обычное переключение классов

 $(".translate").click(function (e) {
   e.preventDefault();
   $(".active").removeClass("active");
   $(this).addClass("active");
 });
источник

A

Alex in jQuery — русскоговорящее общество
Bogdan Shilkin
а вот это пробовал, не заработало, в принципе можно сделать проще, когда страницы загружена, не обязательно обращаться к кукам и можно сделать обычное переключение классов

 $(".translate").click(function (e) {
   e.preventDefault();
   $(".active").removeClass("active");
   $(this).addClass("active");
 });
как не заработало, вроде все правильно, только active немного поправить нужно, мало ли где-то еще такой будет
$(".translate.active").removeClass("active");
источник

A

Alex in jQuery — русскоговорящее общество
Bogdan Shilkin
а вот это пробовал, не заработало, в принципе можно сделать проще, когда страницы загружена, не обязательно обращаться к кукам и можно сделать обычное переключение классов

 $(".translate").click(function (e) {
   e.preventDefault();
   $(".active").removeClass("active");
   $(this).addClass("active");
 });
источник

BS

Bogdan Shilkin in jQuery — русскоговорящее общество
Alex
как не заработало, вроде все правильно, только active немного поправить нужно, мало ли где-то еще такой будет
$(".translate.active").removeClass("active");
добавил, понял уже в чем ошибся, спасибо большое за помощь
источник
2021 March 26

BS

Bogdan Shilkin in jQuery — русскоговорящее общество
нашел скрипт конвертера валют на сайте

(async function() {
 const response = await fetch("https://blockchain.info/tobtc?currency=EUR&value=1");
 const value = await response.json();            
 for (const element of document.querySelectorAll(".currency")) {
element.textContent = (Number(element.dataset.$) * value).toFixed(3);
}
})();

как его переделать под другую ссылку:
https://api.exchangeratesapi.io/latest?symbols=RUB

а именно под значение RUB внутри ответа json?
источник

A

Andrey DEV in jQuery — русскоговорящее общество
чего?
источник

BS

Bogdan Shilkin in jQuery — русскоговорящее общество
вместо полного ответа надо получить значение из списка
источник

A

Alex in jQuery — русскоговорящее общество
Bogdan Shilkin
вместо полного ответа надо получить значение из списка
value.rates.RUB
источник

BS

Bogdan Shilkin in jQuery — русскоговорящее общество
Alex
value.rates.RUB
так просто... спасибо еще раз)
источник

zN

zVlad Nesquik in jQuery — русскоговорящее общество
Как в функцию animate() додати класс, а потом через 1 сек плавно его удалить?
Именно КЛАС, а не список стилей.
источник

zN

zVlad Nesquik in jQuery — русскоговорящее общество
Смысл в том, что бы при клике область подсветилась и потом плавно потухло.
источник