i have language switcher can't use form directly. here code:
<li class="hoverselector"> <i class="fa fa-globe"></i> <a>languages</a> <ul class="languages hoverselectorblock"> {% lang in languages %} <li><a href="#" lang-code="{{ lang.0 }}" class="change_language" {% if get_current_language == lang.0 %}selected="selected" {% else %} selected="" {% endif %}>{{ lang.1 }}</a></li> {% endfor %} </ul> </li> then have form:
<form action="/i18n/setlang/" method="post" style="display: none" id="change_language_form"> {% csrf_token %} <select type="hidden"> <option type="hidden" id="language-option" value=""></option> </select> <input name="next" type="hidden" value="{{ request.path }}" /> <input type="hidden" value="" name="language" id="language" /> </form> then jquery form form:
<script> $('.change_language').click(function(e){ e.preventdefault(); $('#language').val($(this).attr('lang-code')); $('#language-option').val($(this).attr('lang-code')); $('li.active').removeclass('active'); $('i.fa-check').remove(); if ($(this).attr('selected') === 'selected') { $(this).append('<i class="fa fa-check"></i>'); } $(this).parent('li').addclass('active'); $('#change_language_form').submit(); }); </script> the code works, , changes language, cannot seem check mark appear next current language once page reloads. tried adding
if ($('.change_language').attr('selected') === 'selected') { $(this).append('<i class="fa fa-check"></i>'); } at bottom of jquery showed earlier, still doesn't show check mark next correct language after reload, , makes other javascript doesn't seem work @ all. no check marks appear.
without code show correct check mark when click the language, , if click moves check mark. said after page reload, check mark gone.
what can make mark current language? missing?
thanks, appreciated
i able fix adding under jquery:
$('.current_language').parent().addclass('active'); $('.current_language').append('<i class="fa fa-check"></i>'); adding template tag:
{% get_current_language current_lang %}
and class of anchors within <li>'s in languages dropdown.
class="change_language{% if current_lang == lang.0 %} current_language {% endif %}"
Comments
Post a Comment