Ajax игнорирует условие и выполняется в любом случае. Почему?

переделал немного код, есть по факту 3 аякс запроса в одном файле, 1 из них выполняется постоянно(каждые 5 сек выдает какой то текст с возможности юзеру для вставки) и остальные 2 для смены языка ввода-вывода для словаря.(да я делаю универсальный онлайн словарь и хочу чтобы он работал в обе стороны), и прикол в том, что я вроде бы разделил их условием по выполнению + бульку сделал, но когда переключаешь типо язык(по факту уже пашет другой аякс запрос который заменяет sql запрос на обратный) то он игнорирует условие для невыполнения первого и по факту превращается в кашу(запросы могут выполнятся в обе стороны). я бы хотел, если хоть немного понятна логика выполнения кода, узнать, в чем моя ошибка(в написании кода вы можете найти их уйму).
КОД:
let boolfalse = false;
function rusAjax(){
  if(boolfalse == false)
  {
        let timeout;
        let xhr;
        
        $('.text').on('input', function(e){
          e.preventDefault();
 
              let d = $(this).val();
 
 
            clearTimeout(timeout);
            if(xhr)
              xhr.abort();
 
            timeout = setTimeout(function(){
              xhr = $.ajax({
                url: 'php/result.php',
                type: 'post',
                data: 'text=' + d,
                dataType: 'html',
                success: function(res) {
 
                  $('#result').html(res).fadeIn(300);
                   /*открыть панель аббревиатуры если поле ввода пустое*/
 
 
                  let audbtn = document.querySelectorAll('.fa-microphone');  
                  let vol = document.querySelectorAll('.vol');  
                  let tekst = document.querySelectorAll('.hide');
                  let visible = document.querySelectorAll('#visible');
                  let bool = false;
                  
                
                  for(let i=0;i<audbtn.length;i++)
                  {
                    /*если есть тег для аудио то выводить в результат*/
                    if(audbtn[i].contains(audbtn[i].querySelector('audio')))
                    {
                      audbtn[i].onclick=function()
                      {
                        if(this.querySelector('audio').paused)
                        {
                          this.querySelector('audio').play();
                        }else{               
                          this.querySelector('audio').pause();
                        }
                      }
                    }
                  }
                  for (let i = 0; i < visible.length; i++) 
                  {
                    if(visible[i].contains(visible[i].querySelector('#allWord')))
                    {
                      document.querySelector("#copyWord").onclick = function(){
                        document.querySelector(".vol").classList.add('hint');
                        document.querySelector(".vol").classList.add('hint--right');
                        document.querySelector(".vol").setAttribute("data-hint","Скопировано");
 
                        function copytext(el) 
                        {
                            let $tmp = $("<input>");
                            $("body").append($tmp);
                            $tmp.val($(el).text()).select();
                            document.execCommand("copy");
                            $tmp.remove();
                        } 
                        copytext("#visible");
                      }
                    }
                  }
                }
              })
            }, 800);
 
            $('#result').fadeOut(200);
        }) 
  }     
};
rusAjax();
function digAjax(){
  if(boolfalse == true)
  {
 
                        let timeout;
                        let xhr;
                        
                        $('.text').on('input', function(e){
                          e.preventDefault();
 
                              let t = $(this).val();
 
 
                            clearTimeout(timeout);
                            if(xhr)
                              xhr.abort();
 
                            timeout = setTimeout(function(){
                              xhr = $.ajax({
                                url: 'php/result2.php',
                                type: 'post',
                                data: 'text=' + t,
                                dataType: 'html',
                                success: function(res) {
 
                                  $('#result').html(res).fadeIn(300);
                                   /*открыть панель аббревиатуры если поле ввода пустое*/
 
 
                                  let audbtn = document.querySelectorAll('.fa-microphone');  
                                  let vol = document.querySelectorAll('.vol');  
                                  let tekst = document.querySelectorAll('.hide');
                                  let visible = document.querySelectorAll('#visible');
                                  let bool = false;
                                  
                                
                                  for(let i=0;i<audbtn.length;i++)
                                  {
                                    /*если есть тег для аудио то выводить в результат*/
                                    if(audbtn[i].contains(audbtn[i].querySelector('audio')))
                                    {
                                      audbtn[i].onclick=function()
                                      {
                                        if(this.querySelector('audio').paused)
                                        {
                                          this.querySelector('audio').play();
                                        }else{               
                                          this.querySelector('audio').pause();
                                        }
                                      }
                                    }
                                  }
                                  for (let i = 0; i < visible.length; i++) 
                                  {
                                    if(visible[i].contains(visible[i].querySelector('#allWord')))
                                    {
                                      document.querySelector("#copyWord").onclick = function(){
                                        document.querySelector(".vol").classList.add('hint');
                                        document.querySelector(".vol").classList.add('hint--right');
                                        document.querySelector(".vol").setAttribute("data-hint","Скопировано");
 
                                        function copytext(el) 
                                        {
                                            let $tmp = $("<input>");
                                            $("body").append($tmp);
                                            $tmp.val($(el).text()).select();
                                            document.execCommand("copy");
                                            $tmp.remove();
                                        } 
                                        copytext("#visible");
                                      }
                                    }
                                  }
                                }
                              })
                            }, 800);
 
                            $('#result').fadeOut(200);
                        }) 
  }
};
$(".langs").on('change', function(){
$(document).ready(function(){
  let arr = [];
//remove attr = $("div").removeAttr("id")  
 
  if( $(".rus_lang").prop("selected") )
  {
    boolfalse = false;
    $(".rus_lang").removeAttr("selected");
    $(".dig_lang").removeAttr("selected");
    $(".rus_lang").attr("selected","selected");
    rusAjax();
   
  }else{
 
  }
  if( $(".dig_lang").prop("selected") ){
    boolfalse = true;
    alert("DIG");
    $(".rus_lang").removeAttr("selected");
    $(".dig_lang").attr("selected","selected");
    digAjax();
 
  }
 
 
 
             
/*
 
 
*/
 
 
 
        /*скрыть/показать панель аббревиатуры*/
          $('i.fa-th').click(function(){ 
            $('#hide').slideToggle(300);
            
            return false;
          });
 
 
  
 
});// ajax
}); //langs change
  • Вопрос задан
  • 217 просмотров
Решения вопроса 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Хммм, если у элемента rus_lang существует параметр selected - то удалить параметр selected, а потом снова его добавить, что бы JS ещё раз зашел в этот if, и снова удалил и добавил, и снова, и снова, и так по кругу?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы